我的sql中用到了UNION ALL
如下,
目的是要将 tableA中符合条件的item1 item2 item3取出,结果放在同一列,列名为item
我希望的最终结果是能够消除重复的记录,所以想用distinct不过好象加的位置不对或者说整句sql就不对,所以来请教
(考虑到效率,没有用UNION)
 谢谢了
   SELECT DISTINCT   
   tableA.item1 AS item
   FROM  tableA 
   WHERE  
   tableA.CompanyNO = 37
   AND tableA.KaiteiDate = '2002/01/01 0:00:00'  
 
   UNION ALL 
   SELECT DISTINCT
    tableA.item2 AS RankKigou
   FROM  tableA 
   WHERE  
   tableA.CompanyNO = 37
   AND tableA.KaiteiDate = '2002/01/01 0:00:00'   UNION ALL 
   SELECT DISTINCT
    tableA.item3 AS RankKigou
   FROM  tableA 
   WHERE  
   tableA.CompanyNO = 37
   AND tableA.KaiteiDate = '2002/01/01 0:00:00'
     
  

解决方案 »

  1.   

    select  distinct * 
    from (SELECT 
      tableA.item1 AS item 
      FROM  tableA 
      WHERE  
      tableA.CompanyNO = 37 
      AND tableA.KaiteiDate = '2002/01/01 0:00:00'    UNION ALL 
      SELECT 
        tableA.item2 AS RankKigou 
      FROM  tableA 
      WHERE  
      tableA.CompanyNO = 37 
      AND tableA.KaiteiDate = '2002/01/01 0:00:00'   UNION ALL 
      SELECT 
        tableA.item3 AS RankKigou 
      FROM  tableA 
      WHERE  
      tableA.CompanyNO = 37 
      AND tableA.KaiteiDate = '2002/01/01 0:00:00' 
    )K
      

  2.   

    无奈啊
    设计书上写了要用distinct
    我也没有办法
    除非能说明设计书写的不对