SELECT DISTINCT CHL_CHECK,
                CHL_PART,
                CHL_STORE,
                CHL_BIN,
                CHE_TYPE,
                TO_CHAR(CHE_DATE, 'YYYY-MM-DD') CHE_ENDDATE
  FROM REPAIR_CHECKLINES SKL, REPAIR_CHECK STK
 WHERE CHL_DATE BETWEEN TO_DATE('2008-11-5', 'yyyy-mm-dd') AND
       TO_DATE('2008-12-5', 'yyyy-mm-dd')
   AND STK.CHE_CODE = SKL.CHL_CHECK  这样写后查出来的数据CHL_CHECK字段还是用重复的!!

解决方案 »

  1.   

      你这样写就不会有重复的,要选择的所有字段完全相等才不会有重复的.
    CHL_PART,
    CHL_STORE,
    CHL_BIN
    哪个是不是有一样的.
      

  2.   

    distinct
    保证的是CHL_CHECK,
                    CHL_PART,
                    CHL_STORE,
                    CHL_BIN,
                    CHE_TYPE,
                    TO_CHAR(CHE_DATE, 'YYYY-MM-DD') CHE_ENDDATE这些字段组合在一起不重复,类似于联合主键!
      

  3.   

    distinct只能行不能有重复,如果单列不重复,可以用分组
      

  4.   

    用分组也是行不能重复....
    LZ想所有字段都不存在重复?
    如果以每一个字段都不重复就以某个表的唯一键值进行,然后用个function取数...
      

  5.   

    如果以每一个字段都不重复就以某个表的唯一键值进行,然后用个function就可以了。
      

  6.   

    distinct 只是对行进行过滤。
      

  7.   

    select distinct a from b --a应该不人有重复的吧
    不是有只有一个列时,才是除去重复的字段啊