注册 登录
编程论坛 SQL Server论坛

关于查询的问题,

不羁一世 发布于 2006-12-27 11:26, 1096 次点击

问题是这样,一个study表
里面字段如下
姓名 科目 成绩
aaa c# 70
aaa java 80
aaa winfrom 90
bbb c# 75
bbb java 85
bbb winfrom 95

查询问后要显示为
姓名 C# java winfrom
aaa 70 80 90
bbb 75 85 95

要求只是查询显示结果,不是从新new个新表.
我想了几小时没想出,请高手指点.先谢过.

12 回复
#2
bygg2006-12-27 15:32
前面好像有人发过类似的帖子吧???
#3
雨之神2006-12-27 16:13
这是完全不同的问题,没整出来,期待高手!~
#4
不羁一世2006-12-27 16:17
我整了半天也没整出来,郁闷.
#5
棉花糖ONE2006-12-27 16:26

create table study(姓名 varchar(3),科目 varchar(8),成绩 int)
insert into study select 'aaa','C#',70
union select 'aaa','java',80
union select 'aaa','winform',90
union select 'bbb','C#',75
union select 'bbb','java',85
union select 'bbb','winform',95
select * from study
select 姓名,sum(case 科目 when 'C#' then 成绩 else 0 end) as C#,
sum(case 科目 when 'java' then 成绩 else 0 end) as java,
sum(case 科目 when 'winform' then 成绩 else 0 end) as winform from study group by 姓名

姓名 C# java winform
---- ----------- ----------- -----------
aaa 70 80 90
bbb 75 85 95

(所影响的行数为 2 行)

#6
雨之神2006-12-27 16:48
高手

[此贴子已经被作者于2006-12-27 16:50:00编辑过]

#7
李彬2006-12-28 12:59
不过版主这个还是new了个新表!
#8
棉花糖ONE2006-12-28 22:48

为什么说new了个新表

#9
bygg2006-12-29 22:20
不是 new  是创建了一个表.
#10
棉花糖ONE2006-12-29 22:27
为什么说创建了一张表????
#11
bygg2006-12-30 14:59
create table study
#12
棉花糖ONE2006-12-30 15:03
那是我做实验的表
#13
yhxyh2007-01-03 16:23
1