create table 视图A(Exam char(3),[Name] char(1),Class varchar(10),Achievement varchar(10),Term varchar(10),Subject varchar(10),Score int,[Order] int)
insert 视图A values('001','A','-(1)','期末','上学期','数学',80,1)
insert 视图A values('001','A','一(1)','期末','上学期','语文',90,1)
insert 视图A values('002','B','一(1)','期末','上学期','英语',70,1)
insert 视图A values('002','B','一(1)','期末','上学期','语文',76,2) 
declare @sql varchar(8000)
set @sql = 'select Exam ExamNum,Name,'select @sql = @sql + 'sum(case Subject when '''+Subject+''' 
                          then Score else null end) as '''+Subject+''',sum(case Subject when '''+Subject+''' then [order] else null end) as '+Subject+'名次,'
  from (select distinct Subject from 视图A) as aselect @sql = left(@sql,len(@sql)-1) + ' from 视图A group by Exam,Name'exec(@sql)
go

解决方案 »

  1.   

    运行过果然可以,大力,你学SQL多久了,简直--
      不赞你,因为你还没有GF。哈哈,我早就相信上天不会这样偏心,什么好的都给你
        先不结贴,担心自己看着看着又有问题,而我现在可用分不多了,必然吝啬一点才行。
      如有得罪之处,切勿怪!!
      

  2.   

    大力GG别哭别哭!!MM给分啦。
      大力GG一哭就不漂亮啦!看眼泪鼻涕都出来啦,liuri (璇玑) 千里迢迢来到这,要是见到你这样多不好,我实在不忍心哦!