--给个例子,参考:请教一个问题:
有如下一个表:
货号,  毛需求,订单供给,仓存供给,
101    500    0     0  
101      0    100       0
101      0     0        400
要得到如下表:(要用什么sql语句???)
货号,   毛需求   订单供给,仓存供给 ,  累计可用量
101     500        0       0           -500
101      0        100      0           -400
101      0         0       400           0 累计可用量 = 上一个累计可用量 + 订单供给 + 仓存供给-毛需求declare @a table(货号 int,毛需求 int,订单供给 int,仓存供给 int)
insert @a(货号,毛需求,订单供给,仓存供给)
values(101,500,0,0)
insert @a(货号,毛需求,订单供给,仓存供给)
values(101,0,100,0)
insert @a(货号,毛需求,订单供给,仓存供给)
values(101,0,0,400)
insert @a(货号,毛需求,订单供给,仓存供给)
values(101,200,0,400)
select * from @a
declare @b table(货号 int,毛需求 int,订单供给 int,仓存供给 int,累计 int)
declare @num int
set @num=0declare @a1 int
declare @a2 int
declare @a3 int
declare Num_Cursor CURSOR FOR                      --游标的定义
select 毛需求,订单供给,仓存供给 from @a
open Num_Cursor                                    --打开游标
fetch next from Num_Cursor into @a1,@a2,@a3
while @@FETCH_STATUS=0
begin
set @num=@num+@a2+@a3-@a1
insert @b(毛需求,订单供给,仓存供给,累计)        
values(@a1,@a2,@a3,@num)
fetch next  from Num_Cursor  into  @a1,@a2,@a3      --循环
end
close Num_Cursor                                    --关闭游标
deallocate Num_Cursor                               --销毁游标
select * from @b