2014-03-19 73 views
0
SELECT 
    Item.Itemno 
    , SUM(Delivered_item.qtyordered) AS SumOfqtyordered 
    , SUM(Item_issued.qtyissued) AS SumOfqtyissued 
FROM 
    Item 
    INNER JOIN Delivered_item ON Item.Itemno = Delivered_item.itemno 
    INNER JOIN Item_issued ON Item.Itemno = Item_issued.Itemno 
GROUP BY 
    Item.Itemno; 

這是我的sql視圖。在我的數據庫中,delivered_item有7條記錄,而item_issued只有2條記錄。當我執行SUM時,qtyissued的總數出錯了,有1條記錄(qtyissued)乘以3,另一條記錄乘以4,這是由於delivered_item有7條記錄(其中有2條記錄相同),所以如何解決這個問題。 ..微軟訪問查詢設計

+0

您能向我們展示您的樣品數據和您的預期結果嗎? –

+1

此查詢不會在Access SQL環境中運行。 – Yawar

回答

0

您需要使用子查詢:如果你認爲你可能不得不這樣做了很多,把每個子查詢到一個視圖並使用它(打字保存)

SELECT * 
FROM item i 
INNER JOIN 
    (SELECT itemno, 
      Sum(qtyordered) 
    FROM delivereditem 
    GROUP BY itemno) d ON d.itemno = i.itemno 
INNER JOIN 
    (SELECT itemno, 
      Sum(qtyissued) 
    FROM itemissued 
    GROUP BY itemno) iss ON iss.itemno = i.itemno 

編輯:在子查詢中添加group by。對於那個很抱歉!

+0

你能指導我嗎?我是初學者,不確定子查詢是什麼。謝謝 – UnusualSkill

+0

答案中有兩個子查詢,兩個選擇都包含在()中。一般來說,在哪裏你可以有一個表名,你可以用select語句來代替。這些被稱爲子查詢。上述說明是否有效? –

+0

從項目選擇* 我 內加入 (選擇貨號,從delivered_Item 總和(qtyOrdered))上delivered_item.itemNo delivered_item = item.itemNo 內部聯接 ( 選擇貨號,總和(qtyIssued)從itemIssued )item_issued on item_issued.itemNo = item.itemNo – UnusualSkill