ถ้าของคุณ ID
คือยูนิคต้องแต่ละแถวนั้นการลบ PARTITION BY ID
อีกมันไม่ยอมซำ cumulatively. จะย้อนกลับลำดับของคนรวมทั้งหมแค่ย้อนกลับ ORDER BY
ของ SUM
:
DDL:
declare @sales table (
ID int,
Date date,
Amount int);
insert into @sales
values
(1, '2020-01-01', 15),
(2, '2020-01-02', 10),
(3, '2020-01-03', 5);
DML:
select ID, Date, Amount,
sum(Amount) over (order by Date) as RunningBalanceForward,
sum(Amount) over (order by Date desc) as RunningBalanceBackwards
from @sales
order by ID
ผลตรวจ:
หมายเลข |
เดท |
จำนวนมาก |
RunningBalanceForward |
RunningBalanceBackwards |
1 |
2020-01-01 |
15 |
15 |
30 |
2 |
2020-01-02 |
10 |
25 |
15 |
3 |
2020-01-03 |
5 |
30 |
5 |