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子查询返回的值多于一个。当子查询跟随在=,!=,<,<=,>,>=,之后,或子查询用作表达式时,这种情况是不允许的。”望高手多指教
展开
 我来答
646158013
2010-05-09 · TA获得超过277个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:105万
展开全部
说的很明白了啊。只查询的结果为一个记录集而非一条记录的时候不能添加>.< 等条件。应为条件对象不明确。该的话就该条件。。就行了、不要在SQL里面判断在VB中用IF判断。比较好
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式