欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

初学者怎么吧一张表的某字段的值变成结果集的字段

更新时间: 2014-01-05 02:12:36 责任编辑: Author_N1

 

菜鸟求教:如何吧一张表的某字段的值变成结果集的字段
比如现在有三张表:
表1是学生信息表(student),有字段id,name
-----------------
  id   |   name
-----------------
  1    |   张三
-----------------
表2是科目表(course),有字段id,name
-----------------
  id   |   name
-----------------
  1    |   语文
-----------------
  2    |   数学
-----------------
  3    |   英语
-----------------
表3是成绩表(score),有字段id, student_id, course_id, score
-------------------------------------------------
  id   |   student_id   |   course_id   |   score
-------------------------------------------------
  1    |        1       |       1       |     70
-------------------------------------------------
  2    |        1       |       2       |     80
-------------------------------------------------
  3    |        1       |       3       |     81
--------------------------------------------------

现在需求是用SQL语句输出结果集的形式是:
-------------------------------------------------
  student_name  |   语文  |   数学   |   英语  
-------------------------------------------------
     张三       |   70    |    80    |    81
-------------------------------------------------

求大神指教....   
--参考方法--
with student as (select 1 id, '张三' name from dual),
      score  as ( select 1 id, 1 student_id, 1 course_id, 70 score from dual
                   union all
                  select 1 id, 1 student_id, 2 course_id, 80 score from dual
                   union all
                  select 1 id, 1 student_id, 3 course_id, 81 score from dual )                  
select b.name student_name, sum(decode(a.course_id, 1, score)) 语文,
       sum(decode(a.course_id, 2, score)) 数学,
       sum(decode(a.course_id, 3, score)) 英语 
  from score a, student b
 where a.student_id = b.id
 group by b.name;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:36
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6977/
本文WWW.DOC100.NET DOC100.NET版权所有。