declare @sql varchar(8000)
set @sql = 'select 姓名'
select @sql = @sql + ',sum(case 科目 when '''+科目+''' then 分数 end) ['+科目+']'
from (select distinct 科目 from 学生考试信息表) as a
select @sql = @sql+' from 学生考试信息表 group by 姓名'exec(@sql)
go
set @sql = 'select 姓名'
select @sql = @sql + ',sum(case 科目 when '''+科目+''' then 分数 end) ['+科目+']'
from (select distinct 科目 from 学生考试信息表) as a
select @sql = @sql+' from 学生考试信息表 group by 姓名'exec(@sql)
go
sum(case when 科目 = '数学' then 分数 else 0 end) as 数学
from 学生考试信息表 group by 姓名
sum(case when 科目 = '数学' then 分数 else 0 end) as 数学
from 学生考试信息表 group by 姓名
sum(case when 科目 = '语文' then 分数 else 0 end) as 语文,
sum(case when 科目 = '数学' then 分数 else 0 end) as 数学
from 学生考试信息表
group by 姓名
select distinct 科目 into #t from table1
set @s = 'select 姓名'
select @s = @s + ',sum(case when 科目 ='''+ 科目 + ''' then 分数 else 0 end) as [' +科目+']' from #t order by 科目
set @s = @s + ' from talbe1 group by 姓名'
exec (@s)
愉快的登山者 ⊙
◢◣◢◣◢◣
create table #(a varchar(100),b int)
insert # values('aa',11)
insert # values('bb',1)
insert # values('aa',45)
insert # values('cc',81)
insert # values('a',11)
insert # values('aay',561)
insert # values('a',14)declare @sql varchar(8000)
set @sql = 'select '
select @sql = @sql + 'sum(case a when '''+a+'''
then b else 0 end) '+a+'的数量,'
from (select distinct a from #) as aselect @sql = left(@sql,len(@sql)-1) + ' from #'exec(@sql)drop table #
select distinct 科目 into #t from 学生考试信息表
set @s = 'select 姓名'
select @s = @s + ',sum(case when 科目 ='''+ 科目 + ''' then 分数 else 0 end) as [' +科目+']' from #t order by 科目
set @s = @s + ' from 学生考试信息表 group by 姓名'
drop table #t
exec (@s)
---通过 谢谢