从表中求和一列并将其减去另一个表中的求和列

时间:2015-07-17 09:24:09

标签: sql ms-access-2010

我有两个表TblInventory和TblWithdrawal。 TblInventory有productID和TblWithdrawal。

按产品ID分组,如何将TblInventory中的数量和SUM TblWithdrawal中的数量相加,然后将SUBTRACT相互调整,以便获得每个ProductID的剩余数量或差异?

这就是我提出的,但是当我运行查询时,它要求我输入一个错误的参数,因为我希望它自动遍历表并对每个ProductID执行操作。

SELECT TblInventory.ProductID,
       SUM(TblInventroy.Quantity) - SUM(TblWithdrawals.Quantity) As [Remaining]
FROM TblInventory
  LEFT JOIN TblWithdrawals ON TblInventory.ProductID = TblWithdrawals.ProductID 
WHERE TblInventory.ProductID = TblWithdrawals.ProductID
GROUP BY TblInventory.ProductID

谢谢。我真的需要解决这个问题!

2 个答案:

答案 0 :(得分:0)

不要使用WHERE子句。并使用INNER JOIN而不是LEFT JOIN

答案 1 :(得分:0)

使用子查询,首先写入组sqls然后根据需要加入它。看下面的sql。

SELECT invent.ProductID,invent.invQty- withdrawl.withdrQty as Remaining
FROM(选择ProductID,SUM(Quantity)作为invQty
    来自TblInventory)作为发明 LEFT OUTER JOIN
(选择ProductID,SUM(Quantity)asdrQty
从TblWithdrawals)撤回         ON invQty.ProductID = withdrawl.ProductID

尝试这个祝福