2015-02-08 77 views
0

我的問題是在兩張表中,我需要一個結果集來顯示每個PLU的訂購商品數量和庫存數量。存儲過程中的子查詢

我不能在一個存儲過程中做到這一點。

我的查詢顯示訂單。

SELECT 
    tblOrderDetails.PLU, tblArtikel.Description, 
    SUM(tblOrderDetails.Pieces) AS Pieces 
FROM 
    tblOrderDetails 
INNER JOIN 
    tblArtikel ON tblOrderDetails.PLU = tblArtikel.PLU 
GROUP BY 
    tblOrderDetails.PLU, tblArtikel.Description 

回報作爲輸出:

30002 BA4875 3 
30012 UK8798 15 

我的股票查詢與

(SELECT SUM(tblStock.Pieces) AS Ls, tblStock.PLU 
from tblStock 
GROUP BY tblStock.PLU) 

結果應該是這樣的:

30002 BA4875 3 0 
30012 UK8798 15 8 

意味着對於artikelno 30002有3個訂購,0個庫存

那麼,如何將兩個查詢(結果集)結合到一個SP中呢?

我總是得到錯誤

消息116
只有一個表達式可以在選擇列表中指定當子查詢未與EXISTS介紹。

我知道錯誤是什麼,但沒有股票查詢中的PLU我不知道如何組合兩個結果集。

謝謝你。幫助 邁克爾

+0

沒有這些查詢具有任何公共領域? – Siva 2015-02-08 11:39:19

回答

0

可否請您嘗試以下

SELECT 
tblOrderDetails.PLU, tblArtikel.Description, 
SUM(tblOrderDetails.Pieces) AS Pieces 
FROM tblOrderDetails 
INNER JOIN tblArtikel ON tblOrderDetails.PLU = tblArtikel.PLU 
where exists 
(
    select SUM(tblStock.Pieces) AS Ls, tblStock.PLU from tblStock 
    where tblArtikel.PLU = tblStock.PLU  
    GROUP BY tblStock.PLU 
    having SUM(tblStock.Pieces) > 0 
) 
GROUP BY tblOrderDetails.PLU, tblArtikel.Description 

請讓我知道如果這有助於

+0

謝謝你的努力,但它仍然錯過了第二筆總額,股票的項目。您的代碼只是對訂購商品進行總結。同時,我找到了一個解決方案,它的工作原理是:我製作了一個計算庫存物品的表值函數,並使用有序表格將其與「外部應用」結合起來。 – mak 2015-02-09 13:40:50