如下 代码,执行出错,提示 @GradeCode 未声明
declare @StepDate datetime
declare @GradeCode char(1)
declare @Sql nvarchar(500)set @StepDate='2011-09-01'; declare updateGradeSumCur cursor for
select GradeCode from tableA
open updateGradeSumCur
fetch next from updateGradeSumCur into @GradeCode
while @@fetch_status=0
begin
set @sql='update TableB set G'+@GradeCode+'=(select isnull(sum(weight),0) from TableC where GradeCode=@GradeCode and Rtrim(Tdate)=Convert(char(10),@StepDate,120))'
exec(@sql)
fetch next from updateGradeSumCur into @GradeCode
end
close updateGradeSumCur
deallocate updateGradeSumCur我想执行的是这样的语句
如果@GradeCode=0,拼成的SQL如下
update TableB set G0=(select isnull(sum(weight),0) from TableC where GradeCode='0' and Rtrim(Tdate)=Convert(char(10),@StepDate,120))
如果@GradeCode=1 拼成的SQL如下
update TableB set G1=(select isnull(sum(weight),0) from TableC where GradeCode='1' and Rtrim(Tdate)=Convert(char(10),@StepDate,120))
declare @StepDate datetime
declare @GradeCode char(1)
declare @Sql nvarchar(500)set @StepDate='2011-09-01'; declare updateGradeSumCur cursor for
select GradeCode from tableA
open updateGradeSumCur
fetch next from updateGradeSumCur into @GradeCode
while @@fetch_status=0
begin
set @sql='update TableB set G'+@GradeCode+'=(select isnull(sum(weight),0) from TableC where GradeCode=@GradeCode and Rtrim(Tdate)=Convert(char(10),@StepDate,120))'
exec(@sql)
fetch next from updateGradeSumCur into @GradeCode
end
close updateGradeSumCur
deallocate updateGradeSumCur我想执行的是这样的语句
如果@GradeCode=0,拼成的SQL如下
update TableB set G0=(select isnull(sum(weight),0) from TableC where GradeCode='0' and Rtrim(Tdate)=Convert(char(10),@StepDate,120))
如果@GradeCode=1 拼成的SQL如下
update TableB set G1=(select isnull(sum(weight),0) from TableC where GradeCode='1' and Rtrim(Tdate)=Convert(char(10),@StepDate,120))
set @sql='update TableB set G0'+......
else if @GradeCode=1
set @sql='update TableB set G1'+......
set @sql='update TableB set G'+@GradeCode+'=(select isnull(sum(weight),0) from TableC where GradeCode='''+@GradeCode+''' and Rtrim(Tdate)='''+Convert(char(10),@StepDate,120))+''''
exec(@sql)
declare @GradeCode char(1)
declare @Sql nvarchar(500)set @StepDate='2011-09-01'; declare updateGradeSumCur cursor for
select GradeCode from tableA
open updateGradeSumCur
fetch next from updateGradeSumCur into @GradeCode
while @@fetch_status=0
begin
set @sql='update TableB set G'+@GradeCode+'=(select isnull(sum(weight),0) from TableC where GradeCode='''+@GradeCode+''' and Rtrim(Tdate)='''+Convert(char(10),@StepDate,120))+''''
exec(@sql) fetch next from updateGradeSumCur into @GradeCode
end
close updateGradeSumCur
deallocate updateGradeSumCur
exec(@sql)