参考这个例子:
        SELECT  *
        FROM  (SELECT job,
                      sum(decode(deptno,10,sal)) DEPT10,
                      sum(decode(deptno,20,sal)) DEPT20,
                      sum(decode(deptno,30,sal)) DEPT30,
                      sum(decode(deptno,40,sal)) DEPT40
                 FROM scott.emp
                GROUP BY job)
        ORDER BY 1;        JOB           DEPT10     DEPT20     DEPT30     DEPT40
        --------- ---------- ---------- ---------- ----------
        ANALYST                    6000
        CLERK           1300       1900        950
        MANAGER         2450       2975       2850
        PRESIDENT       5000
        SALESMAN                              5600

解决方案 »

  1.   

    没有其他简单的方法吗?一条SQL语句不能解决吗?
      

  2.   

    select rownum,decode(mo,1,decode(rownum,1,z1,2,z2...31,z31)),
    decode(mo,2,decode(rownum,1,z1,2,z2...31,z31)),
    decode(mo,3,decode(rownum,1,z1,2,z2...31,z31)),
    ...
    decode(mo,12,decode(rownum,1,z1,2,z2...31,z31))
    from dz;
      

  3.   

    改一下:
    select rownum,sum(decode(mo,1,decode(rownum,1,z1,2,z2...31,z31))),
    sum(decode(mo,2,decode(rownum,1,z1,2,z2...31,z31))),
    sum(decode(mo,3,decode(rownum,1,z1,2,z2...31,z31))),
    ...
    sum(decode(mo,12,decode(rownum,1,z1,2,z2...31,z31)))
    from dz group by mo;
      

  4.   

    这个,表结构应该是
    站码  日期   平均水位
    较为合理吧?!另外,楼主如果用Developer,这问题就好办了。
    用矩阵报表就可以了。