select @sum=@sum+isnull(@med_Number,0);ALTER proc [dbo].[addsum] @name varchar as update med set med_Sum=sum(main.med_Number ) from main INNER JOIN med ON main.med_Id = med.med_Id where med_Name=@name group by med_Name
ALTER proc [dbo].[addsum] @name varchar as declare @sum int, @med_Number int; select @sum=0; declare myCursor cursorforSELECT main.med_Number FROM main INNER JOIN med ON main.med_Id = med.med_Id WHERE (med.med_Name = @name)open myCursorfetch next from myCursor into @med_Number while @@fetch_status=0 begin select @sum=@sum+@med_Number; fetch next from myCursor into @med_Number end update med set med_Sum=@sum where med_Name=@name close myCursor deallocate myCursor应该是你的@NAME长度不够,呵呵
while 循环加语句调试,看看循环中@sum,@med_number的变化 while @@fetch_status=0 begin select @sum=@sum+@med_Number; select @sum,@med_Number //加此语句调试 fetch next from myCursor into @med_Number end 如循环无问题,再查用 select * form med where med_Name=@name 查看是否有记录。
@name varchar
as update med
set med_Sum=sum(main.med_Number )
from main INNER JOIN
med ON main.med_Id = med.med_Id
where med_Name=@name
group by med_Name
@name varchar
as
declare @sum int,
@med_Number int;
select @sum=0;
declare myCursor cursorforSELECT main.med_Number
FROM main INNER JOIN
med ON main.med_Id = med.med_Id
WHERE (med.med_Name = @name)open myCursorfetch next from myCursor into @med_Number
while @@fetch_status=0
begin
select @sum=@sum+@med_Number;
fetch next from myCursor into @med_Number
end
update med set med_Sum=@sum where med_Name=@name
close myCursor
deallocate myCursor应该是你的@NAME长度不够,呵呵
我就偷了这么一回懒。。哎。。
while @@fetch_status=0
begin
select @sum=@sum+@med_Number;
select @sum,@med_Number //加此语句调试
fetch next from myCursor into @med_Number
end
如循环无问题,再查用
select * form med where med_Name=@name
查看是否有记录。