如果你表中的course数据种类不固定,就一定要用存储过程或上面的语句段,否则可以直接写select num,
高等数学=sum(case course when '高等数学' then score end),
大学英语=sum(case course when '大学英语' then score end),
计算机基础=sum(case course when '计算机基础' then score end),
...其他项...
from grade group by num
高等数学=sum(case course when '高等数学' then score end),
大学英语=sum(case course when '大学英语' then score end),
计算机基础=sum(case course when '计算机基础' then score end),
...其他项...
from grade group by num
declare @sql varchar(8000)
set @sql = 'select num,'
select @sql = @sql + 'sum(case course when '''+course+'''then score else 0 end) as '''+course+''','from (select distinct course from grade) as a
select @sql = left(@sql,len(@sql)-1) + ' from grade group by num'
return
GO我现在用了写了这个存储过程 在查询分析器中exec subject时只显示命令成功没有结果显示,但是用
declare @sql varchar(8000)
set @sql = 'select num,'
select @sql = @sql + 'sum(case course when '''+course+'''then score else 0 end) as '''+course+''','from (select distinct course from grade) as a
select @sql = left(@sql,len(@sql)-1) + ' from grade group by num'
exec(@sql)
的时候就有结果显示
这是什么原因啊