表是这样的:
FLAG YEAR_MONTH YUEZU JIBEN          CHANGTU HUAYIN           SHUJU          XINXI       QITA
1 08         4479072.795 569659.54 309319.54 122536.5 1324711.31 326151.02 0
1 09         4581437.58 5729621.4 327647.02 117397.32 1582685.44 333685.76 0
2 08         1689079.2 7380148.18 761092.96 858931.94 2073449.76 483553.88 0
2 09         1711210.46 7948484.64 923315.84 872494.9 2451616.32 543459.98 0
3 08         2012473.71 8117885.99 751642.19 690147.9 2153671.31 489927.86 0
3 09         2071729.48 9115709.69 955042.15 699899.52 2559293.05 543112.56 0我想要以下面的样式展现出来 ,帮帮我吧
                       1                   2                   3
                 08        09          08       09        08         09                    
YUEZU
JIBEN
CHANGTU
HUAYIN
SHUJU
XINXI
QITA其中上面的1就是flag的值 ,谢谢了...

解决方案 »

  1.   

    这里的样式出错了,晕 
    上面的表是这样的
    FLAG YEAR_MONTH YUEZU JIBEN CHANGTU HUAYIN SHUJU XINXI QITA
    1
    1
    2
    2
    3
    3
      

  2.   

    用个最基本的办法:
    create table tx5 ( FLAG int,YEAR_MONTH number,YUEZU  number,JIBEN    number, CHANGTU  number,
    HUAYIN   number,SHUJU number,  XINXI number, QITA number);
    insert into tx5 values(1,08,4479072.795,569659.54,309319.54,122536.5,1324711.31,326151.02,0);
    insert into tx5 values(1,09,4581437.58,5729621.4,327647.02,117397.32,1582685.44,333685.76,0);
    insert into tx5 values(2,08,1689079.2,7380148.18,761092.96,858931.94,2073449.76,483553.88,0);
    insert into tx5 values(2,09,1711210.46,7948484.64,923315.84,872494.9,2451616.32,543459.98,0);
    insert into tx5 values(3,08,2012473.71,8117885.99,751642.19,690147.9,2153671.31,489927.86,0);
    insert into tx5 values(3,09,2071729.48,9115709.69,955042.15,699899.52,2559293.05,543112.56,0);
    COMMIT;
     
    SELECT ' 类别', 108 A1, 109 A2, 208 A3, 109 A4, 208 A5, 109 A6 FROM DUAL
    UNION
    SELECT tt,MAX(a1) a1 ,MAX(a2) a2,MAX(a3) a3,MAX(a4) a4,MAX(a5) a5,MAX(a6) a6
    FROM(
    SELECT 'YUEZU' tt, CASE WHEN (flag=1 and year_month=8) THEN yuezu END a1,  
           CASE WHEN (flag=1 and year_month=9) THEN yuezu END a2,
           CASE WHEN (flag=2 and year_month=8) THEN yuezu END a3,
           CASE WHEN (flag=2 and year_month=9) THEN yuezu END a4,
           CASE WHEN (flag=3 and year_month=8) THEN yuezu END a5,
           CASE WHEN (flag=3 and year_month=9) THEN yuezu END a6
    FROM tx5)GROUP BY tt
    UNION
    SELECT tt,MAX(a1),MAX(a2),MAX(a3),MAX(a4),MAX(a5),MAX(a6)
    FROM(SELECT 'JIBEN' tt,CASE WHEN (flag=1 and year_month=8) THEN JIBEN END a1,  
           CASE WHEN (flag=1 and year_month=9) THEN JIBEN END a2,
           CASE WHEN (flag=2 and year_month=8) THEN JIBEN END a3,
           CASE WHEN (flag=2 and year_month=9) THEN JIBEN END a4,
           CASE WHEN (flag=3 and year_month=8) THEN JIBEN END a5,
           CASE WHEN (flag=3 and year_month=9) THEN JIBEN END a6
    FROM tx5)GROUP BY tt
    UNION
    SELECT tt,MAX(a1),MAX(a2),MAX(a3),MAX(a4),MAX(a5),MAX(a6)
    FROM(SELECT 'CHANGTU' tt,CASE WHEN (flag=1 and year_month=8) THEN CHANGTU END a1,  
           CASE WHEN (flag=1 and year_month=9) THEN CHANGTU END a2,
           CASE WHEN (flag=2 and year_month=8) THEN CHANGTU END a3,
           CASE WHEN (flag=2 and year_month=9) THEN CHANGTU END a4,
           CASE WHEN (flag=3 and year_month=8) THEN CHANGTU END a5,
           CASE WHEN (flag=3 and year_month=9) THEN CHANGTU END a6
    FROM tx5)GROUP BY tt
    UNION
    SELECT tt,MAX(a1),MAX(a2),MAX(a3),MAX(a4),MAX(a5),MAX(a6)
    FROM(SELECT 'HUAYIN' tt,CASE WHEN (flag=1 and year_month=8) THEN HUAYIN END a1,  
           CASE WHEN (flag=1 and year_month=9) THEN HUAYIN END a2,
           CASE WHEN (flag=2 and year_month=8) THEN HUAYIN END a3,
           CASE WHEN (flag=2 and year_month=9) THEN HUAYIN END a4,
           CASE WHEN (flag=3 and year_month=8) THEN HUAYIN END a5,
           CASE WHEN (flag=3 and year_month=9) THEN HUAYIN END a6
    FROM tx5)GROUP BY tt
    UNION
    SELECT tt,MAX(a1),MAX(a2),MAX(a3),MAX(a4),MAX(a5),MAX(a6)
    FROM(SELECT 'SHUJU' tt,CASE WHEN (flag=1 and year_month=8) THEN SHUJU END a1,  
           CASE WHEN (flag=1 and year_month=9) THEN SHUJU END a2,
           CASE WHEN (flag=2 and year_month=8) THEN SHUJU END a3,
           CASE WHEN (flag=2 and year_month=9) THEN SHUJU END a4,
           CASE WHEN (flag=3 and year_month=8) THEN SHUJU END a5,
           CASE WHEN (flag=3 and year_month=9) THEN SHUJU END a6
    FROM tx5)GROUP BY tt
    UNION
    SELECT tt,MAX(a1),MAX(a2),MAX(a3),MAX(a4),MAX(a5),MAX(a6)
    FROM(SELECT 'XINXI' tt,CASE WHEN (flag=1 and year_month=8) THEN XINXI END a1,  
           CASE WHEN (flag=1 and year_month=9) THEN XINXI END a2,
           CASE WHEN (flag=2 and year_month=8) THEN XINXI END a3,
           CASE WHEN (flag=2 and year_month=9) THEN XINXI END a4,
           CASE WHEN (flag=3 and year_month=8) THEN XINXI END a5,
           CASE WHEN (flag=3 and year_month=9) THEN XINXI END a6
    FROM tx5)GROUP BY tt
    UNION
    SELECT tt,MAX(a1),MAX(a2),MAX(a3),MAX(a4),MAX(a5),MAX(a6)
    FROM(SELECT 'QITA' tt,CASE WHEN (flag=1 and year_month=8) THEN QITA END a1,  
           CASE WHEN (flag=1 and year_month=9) THEN QITA END a2,
           CASE WHEN (flag=2 and year_month=8) THEN QITA END a3,
           CASE WHEN (flag=2 and year_month=9) THEN QITA END a4,
           CASE WHEN (flag=3 and year_month=8) THEN QITA END a5,
           CASE WHEN (flag=3 and year_month=9) THEN QITA END a6
    FROM tx5 ) GROUP BY tt ORDER BY 1; 
      

  3.   

    就6条数?decode+max  这个问题天天有人问...CSDN为什么不能搞个置顶贴来解决这些重复问题呢