请教个sql语句问题。如何将表里某字段里的值经过查询后变成字段?
假设表A中有(学号,姓名,性别);表B中有(学科代号,学科名称);表C中有(学号,学科代号,分数);学科名称的值有(语文,数学,英语);经过查询想要得到的学生的姓名以及,...
假设表A中有(学号,姓名,性别);
表B中有(学科代号,学科名称);
表C中有(学号,学科代号,分数);
学科名称的值有(语文,数学,英语);
经过查询想要得到的学生的姓名以及,语文,数学,英语这三门课的成绩。
表示形式如 姓名 语文 数学 英语
小张 90 92 95
小王 92 96 98
小刘 97 88 100
谢谢大家。 展开
表B中有(学科代号,学科名称);
表C中有(学号,学科代号,分数);
学科名称的值有(语文,数学,英语);
经过查询想要得到的学生的姓名以及,语文,数学,英语这三门课的成绩。
表示形式如 姓名 语文 数学 英语
小张 90 92 95
小王 92 96 98
小刘 97 88 100
谢谢大家。 展开
5个回答
展开全部
你可以看看行转列的知识。
下面的语句可以参考下 。没时间了,下班了。表名和列名应该可以猜得出来
select sname, max(case cname when 'math' then score else '0' end ) xxx,
max(case cname when 'language' then score else '0' end ) as yyy,
max(case cname when 'english' then score else '0' end ) as zzz
from (select ydq_s.sname,ydq_c.cname,ydq_f.score from ydq_s join ydq_f on ydq_s.sid=ydq_f.sid join ydq_c on ydq_f.cid=ydq_c.cid) group by sname
下面的语句可以参考下 。没时间了,下班了。表名和列名应该可以猜得出来
select sname, max(case cname when 'math' then score else '0' end ) xxx,
max(case cname when 'language' then score else '0' end ) as yyy,
max(case cname when 'english' then score else '0' end ) as zzz
from (select ydq_s.sname,ydq_c.cname,ydq_f.score from ydq_s join ydq_f on ydq_s.sid=ydq_f.sid join ydq_c on ydq_f.cid=ydq_c.cid) group by sname
参考资料: http://wenku.baidu.com/view/66ff110ef78a6529647d530c.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select a.姓名,
sum(case when c.学科名称 ='语文' then c.分数 end) as 语文,
sum(case when c.学科名称 ='数学' then c.分数 end) as 数学,
sum(case when c.学科名称 ='英语' then c.分数 end) as 英语
from a,b,c
where a.学号=c.学号
and c.学科代号=b.学科代号
group by a.姓名
sum(case when c.学科名称 ='语文' then c.分数 end) as 语文,
sum(case when c.学科名称 ='数学' then c.分数 end) as 数学,
sum(case when c.学科名称 ='英语' then c.分数 end) as 英语
from a,b,c
where a.学号=c.学号
and c.学科代号=b.学科代号
group by a.姓名
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 姓名,语文分,数学分,英语分 from A,B,C where A.学号=C.学号 and B.学科代号=C.学科代号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是sql行转列,用case when 语句就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-05
展开全部
select 姓名fromA union all
select from bunion all
select from c union all
select from bunion all
select from c union all
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询