A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 井路静 黑马帝   /  2011-12-23 19:35  /  2027 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 井路静 于 2011-12-29 17:56 编辑

有这样一张表T1,如下

姓 名   科 目   成 绩
张三    语文     80
张三    数学     70
李四    语文     60
李四    数学     70

要求使用SQL语句输出如下格式

姓 名    语 文   数 学
张三      80          70
李四      60          70

请问有没有会的,帮忙做一下???

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

2 个回复

倒序浏览
张旭 黑马帝 2011-12-23 22:45:49
沙发
我的答案分两步
第一步:
select  name,
(
case  course
when N'语文' then  score
else 0
end
) as 语文,
(
case course
when N'数学' then score
else 0                    
end  
) as 数学 into ss
from T1  
第二步:
select name,sum(数学)as 数学,sum(语文)as 语文
from ss
group by name

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
黄山 黑马帝 2011-12-25 12:33:20
藤椅
select [name] as 姓名,
sum(case [Subject]
when N'语文' then [Score]
else 0
end
)as 语文,
sum(case [Subject]
when N'数学' then [Score]
else 0
end)
as 数学
from T1
group by [name]

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马