【发布时间】:2020-12-04 07:38:35
【问题描述】:
我有一个如下所示的表格:
select * from #tempTable
RN Qty
0 30
1 -3
2 -2
3 8
使用下面的查询,我可以做到以下几点:
WITH CTE AS
(SELECT ROW_NUMBER()OVER(ORDER BY RN) AS RN, Qty
FROM #tempTable)
SELECT T1.RN,T1.Qty StartingQty,T2.Qty as ChangedQty, (T1.Qty+T2.Qty) as TotalQty
FROM CTE T1 LEFT JOIN
CTE T2 ON T1.RN=(T2.RN-1) where T2.Qty IS not null
结果如下:
RN StartingQty ChangedQty TotalQty
1 30 -3 27
2 -3 -2 -5
3 -2 8 6
结果应该如下所示,不知道如何实现:
RN StartingQty ChangedQty TotalQty
1 30 -3 27
2 27 -2 25
3 25 8 33
任何线索都会对如何实现这一点有所帮助。
【问题讨论】:
-
SQL Server 版本是多少?
-
管理工作室 2018,版本 2016
-
正如我在 2016 年上面所说的。
标签: sql sql-server sum window-functions