怎么把这个查询语句块转换成一个SQL语句(关于交叉表的)
有怎么一个查询语句块
DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT 学号, max(姓名) 姓名, max(班级) 班级, max(系) 系, max(专业) 专业, max(总学分) 总学分'
SELECT @SQL= @SQL+ ',max(CASE WHEN Result_View1.课程名称 = ''' + A.课程名称 + ''' THEN ''√'' else '''' END) [' + 课程名称 + '] '
FROM (SELECT DISTINCT Name 课程名称 FROM Courses where Courses.Elective=1) A
SET @SQL=@SQL+ ' FROM Result_View1 GROUP BY 学号'
exec(@sql)
我想不用exec(@sql),而直接写成select****该怎么写呢?谢谢!
问题点数:20、回复次数:5Top
1 楼dnboy(computerboy)回复于 2006-03-12 09:44:48 得分 0
各位GGJJ们,帮帮忙呀,急!Top
2 楼lizi02(冬虫夏草)回复于 2006-03-12 11:13:50 得分 5
顶Top
3 楼dnboy(computerboy)回复于 2006-03-12 12:24:30 得分 0
helpTop
4 楼dh20156(风之石)回复于 2006-03-12 12:47:31 得分 15
如果你知道有几个[课程名称]的话可以用一条语句来实现,不过如果有很多[课程名称]的话语句会很长,类似:
SELECT 学号, max(姓名) 姓名, max(班级) 班级, max(系) 系, max(专业) 专业, max(总学分) 总学分,max(CASE 课程名称 WHEN '现代汉语' THEN '√' Else '' END) AS '现代汉语',max(CASE 课程名称 WHEN '古代汉语' THEN '√' Else '' END) AS '古代汉语',...其他学科... From Result_View1 GROUP BY 学号Top
5 楼dnboy(computerboy)回复于 2006-03-13 13:38:24 得分 0
哦,多谢Top




