我有两个桌子StockIn
和StockOut
。
StockIn
table具有产品的ID号,此ID号在StockIn
表中是唯一的,否则该ID号将在StockOut
表中重复,因为库存将被售罄。
现在,我想创建一个视图以查找StockIn.Id
=的现有库存StockOut.Id
。到目前为止,我设法进行查询,并且给出了结果,但是当StockOut
同一产品的表中有多个订单时,由于重复的ID号,它失败了。
以下是我的查询:
select DISTINCT
i.Id,
i.AssetsName,
i.Rate,
i.Qty,
So.QtyOut,
Balance = sum( COALESCE(i.Qty,0)- COALESCE(so.QtyOut,0)) OVER(PARTITION BY i.id)
from dbo.StockIn i
LEFT Join StockOut So
on i.Id = So.Id
GO
一个简单的GROUP BY和正常的SUM即可。
SELECT
si.Id,
si.AssetsName,
si.Rate,
si.Qty,
SUM(so.QtyOut) AS QtyOut,
COALESCE(si.Qty, 0) - SUM(so.QtyOut) AS Balance
FROM dbo.StockIn si
LEFT JOIN dbo.StockOut so ON so.Id = si.Id
GROUP BY si.Id, si.AssetsName, si.Rate, si.Qty;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句