2013-11-01 37 views
0

因此,我正在研究小公司的數據庫中的庫存週轉。我基本上正在做的是拿着Items表並將其加入到POLineItemReceipts表中,然後我將Items表加入到SalesTransactionLineItems表中,並試圖找出每件物品有多少(在POLineItemReceipts中)以及我有多少I已經售出(在SalesTransactionLineItems中),然後將這兩個數字分開來查看我的營業額。當我加入另一個表時,SQL查詢值發生變化

我的查詢適用於每個單獨的表SalesTransactionLineItems和POLineItemReceipts,但是當我嘗試將兩個表集成到一個查詢中時,它會爲我的SUM(數量)列提供隨機奇怪的數字。 POLineItemReceipts和SalesTransactionLineItems表都有一個SUM,因爲它們都有一個數量列。

我懷疑我的加入會把所有東西都扔掉,但我並不確定。

這裏是我的單獨的查詢

SELECT DISTINCT i.Item_PK 
    ,i.Code 
    ,SUM(p.Quantity) as Y 
FROM POLineItemReceipts p JOIN Items i ON i.Item_PK = p.Item_FK 
GROUP BY i.Item_PK, i.Code 
ORDER BY i.Item_PK 

enter image description here

SELECT DISTINCT i.Item_PK 
    ,i.Code 
    ,SUM(p.Quantity) as Y 
FROM SalesTransactionLineItems p JOIN Items i ON i.Item_PK = p.Item_FK 
GROUP BY i.Item_PK, i.Code 
ORDER BY i.Item_PK 

enter image description here

,然後結合

SELECT DISTINCT i.Item_PK    
        ,i.Code     AS   Code 
        ,SUM(pr.Quantity)  AS TotalPurchased_X 
        ,SUM(tl.Quantity)  AS TotalSold_Y 

    FROM 
        Items i JOIN POLineItemReceipts pr ON i.Item_PK = pr.Item_FK 
        JOIN SalesTransactionLineItems tl ON i.Item_PK = tl.Item_FK 
    WHERE 
        i.ItemType_FK = 1 
    GROUP BY 
        i.Item_PK 
        ,i.Code 

    ORDER BY 
        i.Item_PK ASC 

enter image description here

要特別注意Item_PK 2和3(Y是totalsold而X totalpurchased。我用SQL服務器中的不同標題運行查詢)

不知道如何解決這個問題。任何幫助,將不勝感激...

+0

當你「組合」你查詢你添加額外的'GROUP BY'字段。他們控制着什麼被彙總。 –

+0

您可以設置[SQL小提琴](http://www.sqlfiddle.com)以顯示您的問題? –

+0

@ PM77-1我不確定你的意思。我拿出除i.Item_PK以外的額外字段,然後從組中刪除其他字段,並得到相同的錯誤結果。 – Carson

回答

0

對於組合的情況下,你已經與額外的i.Description,i.Qty_Comp_OnHand分組。如果你這樣做會返回什麼:

SELECT DISTINCT i.Item_PK    AS ID 
       ,i.Code     AS   Code      
       ,SUM(pr.Quantity)  AS   TotalPurchased 
       ,SUM(tl.Quantity)  AS   TotalSold 
       ,(SUM(tl.Quantity)/SUM(pr.Quantity)) AS Turnover 
FROM 
       Items i JOIN POLineItemReceipts pr ON i.Item_PK = pr.Item_FK 
       JOIN SalesTransactionLineItems tl ON i.Item_PK = tl.Item_FK 
WHERE 
       i.ItemType_FK = 1 
GROUP BY 
       i.Item_PK 
       ,i.Code 

ORDER BY 
       ID ASC 
+0

問題依然存在。現在發佈數據進行分析 – Carson

相關問題