先算出A+B-C+D,重命名为E 然后lag 对E进行累加
------------
with test as (
select '2024-04-01' [rq],10 [a],2 [b],5 [c],7 [d]
union all
select '2024-04-02' [rq],0 [a],3 [b],15 [c],37 [d]
union all
select '2024-04-03' [rq],0 [a],4 [b],5 [c],27 [d]
union all
select '2024-04-04' [rq],0 [a],5 [b],8 [c],7 [d]
union all
select '2024-04-05' [rq],0 [a],6 [b],9 [c],2 [d]
union all
select '2024-04-06' [rq],0 [a],7 [b],5 [c],8 [d]
union all
select '2024-04-07' [rq],0 [a],18 [b],12 [c],1 [d]
union all
select '2024-04-08' [rq],0 [a],9 [b],11 [c],7 [d]
union all
select '2024-04-09' [rq],0 [a],10 [b],7 [c],17 [d]
)
SELECT *,SUM(E) OVER(PARTITION BY '' ORDER BY RQ ASC) [KC] FROM (
select *,a+b-c+d [E] from test
)T
RQ A B C D E KC
2024-04-01 10 2 5 7 14 14
2024-04-02 0 3 15 37 25 39
2024-04-03 0 4 5 27 26 65
2024-04-04 0 5 8 7 4 69
2024-04-05 0 6 9 2 -1 68
2024-04-06 0 7 5 8 10 78
2024-04-07 0 18 12 1 7 85
2024-04-08 0 9 11 7 5 90
2024-04-09 0 10 7 17 20 110