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