每个每个学科添加一个数据
CREATE TABLE [dbo].[成绩] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[姓名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[学科] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[成绩] [int] NULL
) ON [PRIMARY]
看一下这个会理好理解
declare @a varchar(2000)
set @a=''
select @a=@a+','+cast(id as varchar) from 成绩
print @a
select 姓名,
sum(case 学科 when '英语' then 成绩 else 0 end) as 英语,
sum(case 学科 when '物理' then 成绩 else 0 end) as 物理,
sum(case 学科 when'数学' then 成绩 else 0 end) as 数学,
sum(case 学科 when'化学' then 成绩 else 0 end) as 化学
from 成绩 group by 姓名
注: 把字段放到 when 后面可以进行多条件的判断
sum(case when 学科<>'英语' then 成绩 else 0 end) as 不是英语,