sql存储过程+vb
CREATEPROCEDURE奖励金额ASbegintransactiondeclare@职员编码1varchar(10),@职员编码2varchar(10),@奖励金额...
CREATE PROCEDURE 奖励金额 AS
begin transaction
declare @职员编码1 varchar(10) ,@职员编码2 varchar(10) ,@奖励金额 numeric(20,4)
declare mycur3 cursor for select 职员编码 from 工资
open mycur3
fetch next from mycur3 into @职员编码1
while (@@fetch_status=0)
begin
select @奖励金额=0
declare mycur4 cursor for select 职员编码 from 职员奖励管理
open mycur4
fetch next from mycur4 into @职员编码2
while (@@fetch_status=0)
begin
select @奖励金额=@奖励金额+(select 奖励金额 from 职员奖励管理 where @职员编码1 = @职员编码2 )
fetch next from mycur4 into @职员编码2
end
close mycur4
deallocate mycur4
update 工资 set 奖励金额=@奖励金额 where current of mycur3
fetch next from mycu3r into @职员编码1
end
close mycur3
deallocate mycur3
commit
GO
在vb中修改表的时候就出现以下问题 简单说明下 "职员奖励管理"这个表中会有重复的职员编码值,因为奖励是多次的,因此就会有对应的奖励金额,以上的存储过程是想把同一个职员编码的奖励金额累加起来,然后update"工资"表中的奖励金额=累加后的金额... 琢磨了很久 还是没有解决这个想法,希望得到高手的帮忙~...谢谢了!
图中信息为“sql子查询返回的值多于一个。当子查询跟随在=,!=,<,<=,>,>=,之后,或子查询用作表达式时,这种情况是不允许的。”望高手多指教 展开
begin transaction
declare @职员编码1 varchar(10) ,@职员编码2 varchar(10) ,@奖励金额 numeric(20,4)
declare mycur3 cursor for select 职员编码 from 工资
open mycur3
fetch next from mycur3 into @职员编码1
while (@@fetch_status=0)
begin
select @奖励金额=0
declare mycur4 cursor for select 职员编码 from 职员奖励管理
open mycur4
fetch next from mycur4 into @职员编码2
while (@@fetch_status=0)
begin
select @奖励金额=@奖励金额+(select 奖励金额 from 职员奖励管理 where @职员编码1 = @职员编码2 )
fetch next from mycur4 into @职员编码2
end
close mycur4
deallocate mycur4
update 工资 set 奖励金额=@奖励金额 where current of mycur3
fetch next from mycu3r into @职员编码1
end
close mycur3
deallocate mycur3
commit
GO
在vb中修改表的时候就出现以下问题 简单说明下 "职员奖励管理"这个表中会有重复的职员编码值,因为奖励是多次的,因此就会有对应的奖励金额,以上的存储过程是想把同一个职员编码的奖励金额累加起来,然后update"工资"表中的奖励金额=累加后的金额... 琢磨了很久 还是没有解决这个想法,希望得到高手的帮忙~...谢谢了!
图中信息为“sql子查询返回的值多于一个。当子查询跟随在=,!=,<,<=,>,>=,之后,或子查询用作表达式时,这种情况是不允许的。”望高手多指教 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询