0
我有获取各种产品填充像这样的临时表:OVER(order by)语句中的Where子句?
DECLARE @temp TABLE (ID int, productCode int, quantity int, Available bit, RunningTotal int)
INSERT INTO @temp (ID, productCode, quantity, Available, RunningTotal)
SELECT
item.ID
, item.ProductCode
, item.Quantity
, item.available
, SUM(item.Quantity) OVER (Order BY item.productCode ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)
FROM dbo.item
导致这个还挺表:
LineID | ProductCode | Quantity | Available | RunningTotal
001 | 00001 | 2 | 3 | null
002 | 00002 | 2 | 3 | 2
003 | 00001 | 2 | 3 | 4
我现在的问题是,我想运行总计只计算匹配的产品ID,但它会添加每个产品。该表应该看起来像这样:
LineID | ProductCode | Quantity | Available | RunningTotal
001 | 00001 | 2 | 3 | null
002 | 00002 | 2 | 3 | null
003 | 00001 | 2 | 3 | 2
但我似乎无法弄清楚如何将此行更改为仅由productID组?
SUM(item.Quantity) OVER (Order BY item.productCode ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)
更改为Group By
阻止我使用ROWS BETWEEN
条款。 我并不是想要SUM
不同的item.quantity值,但我无法将其更改为不同的item.productCode值,因为我需要总结这些数量。我不确定在Order By之后我可以使用什么语法来处理WHERE
条件,但是我想这可能是开始的地方?
伟大的工作,除了我不得不删除的条件之间的逗号。 'PARTITION BY item.productCode ORDER BY item.productCode' – Wompguinea