[英]Create running tot with OVER in SQL Server 2014
在SQL Sever 2014中,我想創建一個帶有分區總運行量的列,但無法正常工作。 這就是我所擁有的:
SELECT
a.ArtikelCode
,a.Omschrijving
,o.OrderNr
,o.Datum
,r.ProdItem
,o.Aantal
,(SUM(Aantal) OVER(PARTITION BY r.ProdItem ORDER BY r.ProdItem ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS Telling
FROM Artikel a
LEFT JOIN Receprt r ON r.ReqItem = a.ArtikelCode
LEFT JOIN [Order] o ON o.ArtikelCode = r.ProdItem
WHERE LEFT(a.ArtikelCode,1) = 'M'
GROUP BY r.ProdItem, o.ArtikelCode, a.ArtikelCode, o.Datum, o.Aantal, a.Omschrijving, o.OrderNr
ORDER BY a.ArtikelCode, r.ProdItem, o.datum
如您所見,“ Telling”列對“ Aantal”列進行求和。 對於ArtikelCode“ M01”和ProdItem“ ART01”來說效果很好。 但是在記錄8中,它仍在總結。 我想要的是它在記錄8中再次從2開始,在記錄9中應為3,在記錄10中“ Telling”列中的總和應為10
想想您也想按ArtikelCode
進行分區。 我想你打算通過訂購datum
為好。 。 。 並且不需要rows
子句,因為默認情況下該子句位於該子句中:
SUM(Aantal) OVER (PARTITION BY a.ArtikelCode, r.ProdItem
ORDER BY o.datum
) as Telling
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.