您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Sql Server 2000 行转列的实现(横排)

2024/3/4 17:13:16发布16次查看
在一些统计报表中,常常会用到将行结果用列形式展现。我们这里用一个常见的学生各门课程的成绩报表,来实际展示实现方法。
我们用到的表结构如下:
三张表的关系为:
现有的测试数据为:
我们需要的结果是:
代码如下:
declare @strsql varchar(8000)
set @strsql = 'select t.stuname [姓名]'
select @strsql = @strsql + ',sum(case s.sname when ''' + sname + ''' then g.[score] end) [' + sname + ']' from (select sname from [subject]) as tmp
select @strsql = @strsql + ' from [score] g,[subject] s, [student] t where g.sid=s.sid and g.stuid = t.stuid group by t.stuid, t.stuname'
exec(@strsql)
sql server 2005 中,已经有实现此功能的内置方法了。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product