所以我试图调查小公司数据库的库存周转率。我基本上正在做的是获取Items表并将其加入到POLineItemReceipts表中,然后我将Items表连接到SalesTransactionLineItems表并尝试找出我购买的每个项目的数量(在POLineItemReceipts中)以及我有多少已售出(在SalesTransactionLineItems中)然后将这两个数字分开以查看我的营业额。
我的查询适用于每个单独的表,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
和
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
然后合并
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
特别注意Item_PK 2和3(Y是totalsold,X是全部购买。我在SQL服务器中使用不同的标题运行查询)
不确定如何解决这个问题。任何帮助将不胜感激......
答案 0 :(得分: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