日期:2014-05-17  浏览次数:20831 次

急!!!查询的结果有重复
加上EXPECTED_DATE字段后查询的结果就有重复,由于   doc_master.doc_id=schedule.doc_id   其中schedule.doc_id   记录有重复,doc_master.doc_id记录无重复,应该怎么写使结果无重复。谢谢!!!

语句如下:


SELECT
    schedule.EXPECTED_DATE,
    DOC_MASTER.DOC_CODE,
    DOC_MASTER.REV_NO,
    doc_master.created_date,
    FROM
    schedule,
    DOC_MASTER,
    DOC_ITEM_LINE,
    REFERENCE_CODE     REF_CODE_SHIP_TO_COUNTRY,
    REFERENCE_CODE     REFERENCE_CODE_ORIGIN_COUNTRY,
    doc_fty_ctr   fty,
    organisation   org,
    user_variable_value   uv,
    user_variable_definition   uvd,
    user_variable_value   p1,
    user_variable_definition   p1_d,
    user_variable_value   p2,
    user_variable_definition   p2_d,
    user_variable_value   p3,
    user_variable_definition   p3_d,
    user_variable_value   p4,
    user_variable_definition   p4_d,
    user_variable_value   p5,
    user_variable_definition   p5_d,
    user_variable_value   p6,
    user_variable_definition   p6_d,
    user_variable_value   p7,
    user_variable_definition   p7_d
WHERE
  doc_master.doc_id=schedule.doc_id  
  and   DOC_MASTER.COMPANY_CODE =           REF_CODE_SHIP_TO_COUNTRY.COMPANY_CODE
  and   DOC_MASTER.LANG =   REF_CODE_SHIP_TO_COUNTRY.LANG
  and   DOC_MASTER.SHIP_TO_COUNTRY =   REF_CODE_SHIP_TO_COUNTRY.REF_CODE


------解决方案--------------------
我的意思是添加后,你写的用重复纪录的时候要多长时间?
是不是索引的问题啊!
------解决方案--------------------
能将SQL写成这样的人


有才


那么多table在那里做笛卡尔积.
------解决方案--------------------
where
doc_master.doc_id=schedule.doc_id(+)
and DOC_MASTER.COMPANY_CODE = REF_CODE_SHIP_TO_COUNTRY.COMPANY_CODE
and DOC_MASTER.LANG = REF_CODE_SHIP_TO_COUNTRY.LANG
and DOC_MASTER.SHIP_TO_COUNTRY = REF_CODE_SHIP_TO_COUNTRY.REF_CODE