posted on 2006-12-21 18:05 youngturk 阅读(3978) 评论(6) 编辑 收藏 所属分类: SQL笔试题
select sname, sum(case skemu when '语文' then sgrade else 0 end) as 语文,sum(case skemu when '数学' then sgrade else 0 end) as 数学,sum(case skemu when '英语' then sgrade else 0 end) as 英语 from students group by sname order by sname desc 回复 更多评论
@stoneyang 谢谢探讨 回复 更多评论
select t1.姓名,t1.语文,t2.数学,t3.英语from (select 姓名as 姓名,成绩as 语文from t where 科目='语文') t1 join (select 姓名as 姓名,成绩as 数学from t where 科目='数学') t2 on t1.姓名=t2.姓名 join (select 姓名as 姓名,成绩as 英语from t where 科目='英语') t3 on t2.姓名=t3.姓名 回复 更多评论
楼主的,应该是这样的吧------------------------- select A.姓名,A.成绩 as 语文,B.成绩 as 数学,C.成绩 as 英语 from student A,student B,student C where A.姓名 = B.姓名 and B.姓名 = C.姓名 and A.科目 = ' 语文 ' and B.科目 = ' 数学 ' and C.科目 = ' 英语 ' 回复 更多评论
select distinct aa3.姓名,aa3.语文,aa3.数学,aa4.英语 from(select distinct aa1.姓名,aa1.语文,aa2.数学 from(select 姓名,成绩 as 语文 from Table_name where 科目='语文') aa1left join(select 姓名,成绩 as 数学 from Table_name where 科目='数学') aa2on aa1.姓名=aa2.姓名) aa3left join(select 姓名,成绩 as 英语 from Table_name where 科目='英语') aa4on aa3.姓名=aa4.姓名 回复 更多评论
select 姓名,(case when 语文 then 成绩) as 语文,(case when 数学 then 成绩) as 数学,,(case when 英语 then 成绩) as 英语 from table 回复 更多评论
Powered by: BlogJava Copyright © youngturk