成绩sql 查询

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:51:08
有一张表如下
username item score
kenny en 80
kenny ma 90
mary en 70

希望查询如下结果

kenny en 80 ma 90
mary en 70 null null
非常感谢各位高手的回答,可能我没把问题说清楚,username表示的是用户名,item是考试科目,score是成绩,所以这张表存储的是某个学生的成绩汇总,kenny考了两门,mary考了一门,表示的是每个学生可能有多门成绩,考试科目的数量可能不同,现希望根据姓名查询出某个学生所有的成绩汇总,即显示的列数是可变大的,望高手不吝赐教,谢谢大家

执行下面的代码:
select max(usrtname)as username,
max('en') as en,
sum(case item when 'en' then score else '' end) as score,
max('ma') as ma,
sum(case item when 'ma' then score else '' end) as score
from 表名
group by username
得到的结果是:
username en score ma seore
_______________________________________
kenny en 80 ma 90
mary en 70

你看满足你的要求不

select t1.username,t1.item,t1.score,t2.item,t2.score
from test02 t1 left join test02 t2
on t1.username=t2.username and t1.item<>t2.item
where t1.item='en';

**********
测试log:
**********

[TEST@ORA1] SQL>select * from test02;

USERN IT SCORE
----- -- ----------
kenny en 80
kenny ma 90
mary en 70

[TEST@ORA1] SQL>select