我们会有这样的需求。期初+入+出 = 期末 然后流水账的形式体现。
有了开窗数,实现起来就很简单了。
declare @t table(ord int,billdate varchar(10),add_value int,dec_value int,end_value int)
insert into @t
select 1,'期初',0,0,100 union all
select 2,'2021-01-01',100,0,0 union all
select 3,'2021-01-02',0,50,0 union all
select 4,'2021-01-03',0,30,0 union all
select 5,'2021-01-04',90,0,0
select *,sum(add_value -dec_value + end_value ) over(order by ord) as new_end
from @t a