交叉表不确定列打印报表问题
成绩表cj在sql中的数据结构如下图所示:(不同学号的学生的课程可能不同,甚至课程科目数量都不同,因为是不同专业)
学号 课程名称 分数
1 语文 70
1 历史 80
1 英语 60
2 语文 66
2 物理 63
2 化学 77
2 数学 90
. . .
. . .
. . .
要求在vb中通过报表设计器输出成如下格式:
学号 语文 历史 英语
1 70 80 60
学号 语文 物理 化学 数学
2 66 63 77 90
我用了交叉表列不确定的那种方法,语句如下:
DECLARE @STRING VARCHAR(8000)
SET @STRING=''
SELECT @STRING=@STRING+',SUM(CASE WHEN 课程名称='''+课程名称+''' THEN 分数 ELSE 0 END) AS '+课程名称 FROM cj GROUP BY 课程名称
SELECT @STRING='SELECT 姓名'+@STRING+' FROM cj,xj where cj.学号=xj.学号 GROUP BY 姓名'
EXEC(@STRING)
但是怎么生成临时表并在dataenv中来打印这个临时表呢?