求一SQL语句,高手请进!

River2003 2006-06-09 06:37:23
数据

班级 学生 学科 成绩
A 学生A 数学 80
A 学生B 数学 90
A 学生A 语文 100
A 学生B 语文 80
A 学生C 英语 50
B 学生1 数学 80
B 学生2 数学 90
B 学生1 语文 100
B 学生2 语文 80



统计结果(没有总分的项也要显示为0)
班级 语文总分 数学总分 英语总分
A 180 170 50
B 180 170 0


怎么可以用SQL语句形成这样的结果呀,请大家帮忙呀
...全文
164 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
^@^
回复
liangpei2008 2006-06-11
不知不是错,不问才是过!LZ做的好:)
回复
allismine 2006-06-11
学习
回复
hycheng163 2006-06-09
这些例子好象好多的阿
回复
LouisXIV 2006-06-09
发了又发-_-
回复
liangpei2008 2006-06-09
Up
回复
dssw 2006-06-09
我记得你问过拉!
回复
xeqtr1982 2006-06-09
create table tb(班级 varchar(10),学生 varchar(10),学科 varchar(10),成绩 int)
insert into tb select 'A' , '学生A' , '数学' , 80
union all select 'A' ,'学生B' , '数学' ,90
union all select 'A' ,'学生A' , '语文' ,100
union all select 'A' ,'学生B' , '语文' , 80
union all select 'A' ,'学生C' , '英语' , 50
union all select 'B' ,'学生1' , '数学' , 80
union all select 'B' ,'学生2' , '数学' , 90
union all select 'B' ,'学生1' ,'语文' ,100
union all select 'B' ,'学生2' , '语文' , 80
--静态
select 班级,
语文总分=sum(case 学科 when '语文' then 成绩 else 0 end),
数学总分=sum(case 学科 when '数学' then 成绩 else 0 end),
英语总分=sum(case 学科 when '英语' then 成绩 else 0 end)
from tb
group by 班级

--动态
declare @sql varchar(8000)
set @sql='select 班级'
select @sql=@sql+',['+学科+'总分]=sum(case 学科 when '''+学科+''' then 成绩 else 0 end)' from tb group by 学科
exec(@sql+' from tb group by 班级')


drop table tb
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2006-06-09 06:37
社区公告
暂无公告