我試圖加入兩個表格,但表格中沒有公共元素,但現實生活中的關係很重要。我能夠從兩個表中獲取數據,但它會產生行重複。輸出如下:加入表格會在沒有關係時創建重複,有什麼辦法可以減少行數?
Job Release Date Release Qty Ship Date Qty Shipped
17760 2/15/13 320 2/14/13 320
17760 3/18/13 250 2/14/13 320
17760 4/11/13 180 2/14/13 320
17760 2/15/13 320 3/13/13 250
17760 3/18/13 250 3/13/13 250
17760 4/11/13 180 3/13/13 250
17760 2/15/13 320 4/08/13 180
17760 3/18/13 250 4/08/13 180
17760 4/11/13 180 4/08/13 180
我的SQL語句如下:
SELECT PD.oqjob AS Job
, [OR].ordate AS [Release Date]
, [OR].orrqty AS [Release Qty]
, PH.opsdte AS [Ship Date]
, PD.oqaqty AS [Ship Qty]
FROM
dbo.opakh PH
LEFT OUTER JOIN dbo.opakd PD
ON PH.oppack = PD.oqpack
LEFT OUTER JOIN dbo.orels [OR]
ON PD.oqord = [OR].orord AND PD.oqolin = [OR].orline
WHERE
PD.oqjob = '17760'
我想我的輸出看起來像兩個發佈日期和帕克日期以下從早期訂購以後。
Job Release Date Release Qty Ship Date Qty Shipped
17760 2/15/13 0:00 320.00 2/14/13 0:00 320.00
17760 3/18/13 0:00 250.00 3/13/13 0:00 250.00
17760 4/11/13 0:00 180.00 4/08/13 0:00 180.00
另外要注意從OR
表返回的行這個數字可能被PH
表返回的行不同,這是非常重要的。任何一個表都可以有更多的行返回。
有沒有辦法做到這一點?
編輯:我重做我的SQL語句,因此沒有額外的顯示也沒有在目前的任何額外的表或數據
的OR
表包含三個版本用自己的數量日期每
13年2月15日320
13年3月18日250
13年4月11日180
有三個不同的包裝工(裝運日期)有一個封隔器頭的d分組器明細表分別爲PH
和PD
。我需要'PH'表中的日期和PD
表中的數量。加入這兩個表後,它看起來是這樣的:
13年2月14日320
13年3月13日250
13年4月8日180
我再試圖加入PH
& PD
結果爲OR
結果。
對於每個不同的發佈日期,有多種不同的「發貨日期」和「發貨量」,您如何知道在結果中您想要哪些產品? (100.00甚至不在4/11/13的可用值中) –
對不起,我錯誤地複製了數據。這應該是180.儘管發佈數量和發貨量不一定是相同的值。 – Matt
你可以發表表格結構和樣本數據(sqlfiddle.com會很好)嗎?有點難以理解你的問題。順便說一句 - 因爲你在你的WHERE子句中使用了jhead表,所以不需要這些LEFT JOIN中的幾個。 – sgeddes