
declare @t as table ( FName varchar(10), FCourse varchar(10), FScore decimal(4,1) ) insert into @t(FName,FCourse,FScore) values ('3-張三','語文',95), ('3-張三','數學',80), ('3-張三','英語',70), ('4-李四','語文',88), ('4-李四','數學',87), ('4-李四','英語',86), ('5-王五','語文',90), ('5-王五','數學',80), ('5-王五','英語',70)
select * from @t
select FName , max(case FCourse when '語文' then FScore else 0 end) as '語文', max(case FCourse when '數學' then FScore else 0 end) as '數學', max(case FCourse when '英語' then FScore else 0 end) as '英語' from @t group by FName
select FName, case when FCourse='數學' then '理科' else '文科' end as '科別', sum(FScore) as '總分' from @t group by FName,case when FCourse='數學' then '理科' else '文科' end order by FName
select FName, FType as '科別', sum(FScore) as '總分' from ( select FName, FCourse, FScore, FType = case when FCourse in ('語文','英語') then '文科' else '理科' end from @t ) as a group by FName,FType order by FName