oracle行列置换(2)

 数据库中有张表1:DEPARTMENT(DEPARTMENTID NUMBER(5), DEPARTMENTNAME VARCHAR2(10)),存储数据如下:

 表2:PROJECT(YEARMONTH VARCHAR2(6), VALUE NUMBER(5), DEPARTMENTID NUMBER(5)),存储书库如下:

 说明:表1和表2是一对多的关系

请写一个sql,查询的结果如下:

 sql语句为:

SELECT T.DEPARTMENTNAME,
       SUM(DECODE(T.YEARMONTH, '201301', T.VALUE, NULL)) "201301",
       SUM(DECODE(T.YEARMONTH, '201302', T.VALUE, NULL)) "201302",
       SUM(DECODE(T.YEARMONTH, '201306', T.VALUE, NULL)) "201306",
       SUM(DECODE(T.YEARMONTH, '201308', T.VALUE, NULL)) "201308"
  FROM (SELECT P.YEARMONTH, P.VALUE, D.DEPARTMENTNAME
          FROM PROJECT P, DEPARTMENT D
         WHERE P.DEPARTMENTID = D.DEPARTMENTID) T
 GROUP BY T.DEPARTMENTNAME;

猜你喜欢

转载自cdxs2.iteye.com/blog/1892425
今日推荐