关于交叉表问题
grade表结构如下:
num char(15)
name varchar(10)
course varchar(20)
score decimal(18,2)
记录如下
num course score
N03003011103001 高等数学 70
N03003011103001 大学英语 70
N03003011103001 计算机基础 70
. . .
. . .
. . .
. . .
我现在不知道每个学生的课程有多少门但又需要把记录变成这样这样的形式
num 高等数学 大学英语 计算机基础 ..............
N03003011103001 70 70 70 ..............
在查询分析器用下面的语句可以实现:
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)
但是我现在想把它建成一个视图或表而不是存储过程应该怎么写