sql server中总是出没有标明变量有错
这里是源代码:
--各门课程各个分数的人数
--定义变量
declare @count int
declare @i int
declare @gra float
declare @rs int
declare @sql varchar(8000)
declare @grade_cursor cursor
--给变量附初始值
set @sql=''
set @i = 0
set @grade_cursor = cursor local scroll for
select distinct GRADE as gra,count(*) as rs
from sc
group by GRADE
--打开游标
open @grade_cursor
set @count = @@cursor_rows
if(@count<=0)
begin
print '没有记录'
end
else
begin
while(@i<@count-300)
begin
fetch @grade_cursor into @gra,@rs
set @sql =@sql+ '(select COUNT(*)
from sc
where sc.CNO = a.CNO and GRADE= @gra) as ' + '@gra' +','
set @i = @i+1
end
fetch @grade_cursor into @gra,@rs
set @sql =@sql+ '(select COUNT(*)
from sc
where sc.CNO = a.CNO and GRADE= @gra) as ' + '@gra'
close @grade_cursor
print @sql
set @sql='select CNAME,' + @sql +'from (select sc.CNO,CNAME,GRADE
from sc,course
where sc.CNO = course.CNO) as a'
exec(@sql)
end
go
这里是报错:
(select COUNT(*)
from sc
where sc.CNO = a.CNO and GRADE= @gra) as @gra
消息 137,级别 15,状态 2,第 3 行
必须声明标量变量 "@gra"。
消息 156,级别 15,状态 1,第 5 行
关键字 'as' 附近有语法错误。
不知道为什么定义的@gra 变量没有办法正确的的显示值