SQL游标的使用问题,急!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/13 04:25:44
有这样一个表:
S_number S_name score num
1 a 45 0
2 b 80 0
3 c 120 0
现在我要将上面的表变成下面的表:
S_number S_name score num
001 a 11 11
002 b 24 35
003 c 90 125
也就是将上行的num+下行的score再更新num

这个程序,用SQL游标怎么实现呀
S_number列的数据1和001不要管,刚打错了

下面是我自己编的,高手看看吧个地方出现在了问题
就是在更新最后一个值的时候会出现问题,它不会35+90,而是24+90去了

DECLARE
@S_number CHAR(10),
@S_name CHAR(10),
@score INT,
@a int

DECLARE AA CURSOR LOCAL FOR
select S_number,S_name,score from qw
set @a=0
Open AA
Fetch Next from AA into @S_number,@S_name,@score --期初累加
WHILE @@FETCH_STATUS=0
begin

update qw set num=@score+@a where S_number=@S_number
set @a=@dadf
Fetch Next from AA into @S_number,@S_name,@score

end
Close AA
Deallocate AA

//搞毛。qw表SCORE是固定的(初始化)还是也要要变化的啊?
速度回答。
=累了 不=了。
最重要的是:
WHILE @@FETCH_STATUS=0
begin

update qw set num=@score+@a where S_number=@S_number
set @a=@dadf
Fetch Next from AA into @S_number,@S_name,@score

end
我觉得:
update qw set num=@score+@a where S_number=@S_number
set @a=@dadf
是不是可以改成:
update qw set num=@score+@a
set @a=@S_NUMBER