因此,我正在研究小公司的数据库中的库存周转。我基本上正在做的是拿着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
和
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 totalpurchased。我用SQL服务器中的不同标题运行查询)
不知道如何解决这个问题。任何帮助,将不胜感激...
当你“组合”你查询你添加额外的'GROUP BY'字段。他们控制着什么被汇总。 –
您可以设置[SQL小提琴](http://www.sqlfiddle.com)以显示您的问题? –
@ PM77-1我不确定你的意思。我拿出除i.Item_PK以外的额外字段,然后从组中删除其他字段,并得到相同的错误结果。 – Carson