2017-04-21 39 views
1

我相信問題出在我的連接中,但我無法更正它。 SQL應該返回3行,但它是複製並返回12行。任何幫助將非常感激!sql正在複製我的結果

SELECT J.JOURNEY_NUMBER, 
    L.DESCRIPTION, 
    L.USE_CODE, 
    J.REAL_START_DATE, 
    J.REAL_END_DATE, 
    S.STOP_ID, 
    SN.WRIN_ID, 
    J.JOURNEY_ID 
FROM PDA_STG.JOURNEY J, 
    PDA_STG.RESTAURANT R, 
    PDA_STG.LOCATION L, 
    PDA_STG.SERIAL_NUMBER SN, 
    PDA_STG.STOP S 
WHERE J.JOURNEY_ID = R.JOURNEY_ID 
AND l.loc_id  = r.rest_loc_id 
AND J.JOURNEY_ID = S.JOURNEY_ID 
AND S.STOP_ID  = SN.STOP_ID 
AND SN.WRIN_ID  = '00768669' 
AND j.dc_loc_id = '994' 
AND J.JOURNEY_ID = '357020' 
AND J.PLANNED_START_DATE < '20-APR-17' 
ORDER BY J.JOURNEY_ID DESC 
+4

沒有辦法回答你的問題,不知道這些表中的數據是什麼樣子以及你期望的結果。請添加一些樣本,讓我們有機會在這裏幫助你。 – Jens

+2

你可能忘了加入標準。我們不能說,因爲我們不知道你的桌子。沒有樣本的 –

+0

很難說出查詢有什麼問題。但是,如果行是完全重複的,那麼只需在選擇後放置一個獨特的。這應該做的工作 –

回答

2

您可能正在加入您不想加入的記錄,因爲您必須添加一些加入條件。 (例如,如果序列號可以爲停止發生改變,即你保留舊的序列號與日期,你只想要最新的序列號,不是全部。)

爲了找到查詢中的缺陷您可以select *並查看您實際選擇的記錄。

0

感謝您的反饋,我剛做印度.Rocket說,它的工作完美。

沒有示例很難說出查詢有什麼問題。但是 如果行是完全重複的,那麼只需在選擇後放置一個獨特的行。 這應該做的工作 - 印度。火箭46分鐘前

+3

正如我在評論中所說的 - 而印度。火箭同意 - 這是一種最後的手段。你應該找出你的錯誤並糾正它,而不是用'DISTINCT'弄糊塗。 'DISTINCT'通常是寫得不好的查詢的一個指標(就像你的情況一樣),並且在稍後擴展查詢時會導致性能問題和其他問題。總結:不要這樣做。 –