SELECT 学生姓名,
SUM(CASE 学科 WHEN '语文' THEN 成绩 END) AS 语文,
SUM(CASE 学科 WHEN '数学' THEN 成绩 END) AS 数学,
SUM(CASE 学科 WHEN '英语' THEN 成绩 END) AS 英语
FROM 表
GROUP BY 学生姓名
GO
SUM(CASE 学科 WHEN '语文' THEN 成绩 END) AS 语文,
SUM(CASE 学科 WHEN '数学' THEN 成绩 END) AS 数学,
SUM(CASE 学科 WHEN '英语' THEN 成绩 END) AS 英语
FROM 表
GROUP BY 学生姓名
GO
sum(case 学科 when 语文 then 学科 else 0 end) as 语文,
sum(case 学科 when 数学 then 学科 else 0 end) as 数学,
sum(case 学科 when 英语 then 学科 else 0 end) as 英语
group by 学生姓名
,sum(case when 学科='语文' then 成绩 else 0 end) 语文
,sum(case when 学科='数学' then 成绩 else 0 end) 数学
,sum(case when 学科='英语' then 成绩 else 0 end) 英语
from 表
group by 学生姓名
SUM(CASE 学科 WHEN '语文' THEN 成绩 END) AS 语文,
SUM(CASE 学科 WHEN '数学' THEN 成绩 END) AS 数学,
SUM(CASE 学科 WHEN '英语' THEN 成绩 END) AS 英语
FROM 表
GROUP BY 学生姓名
GO
set @sql = 'select 学生姓名'
select @sql = @sql + ',sum(case 学科 when '''+学科+''' then 成绩 end) ['+学科+']'
from (select distinct 学科 from 表) tem
select @sql = @sql+' from 表 group by 学生姓名'
exec(@sql)
go