select
CLAIM_YEAR month_year,
max(decode(CLAIM_CLASS,'01', CLAIM_CHARGE,null)) rent1,
max(decode(CLAIM_CLASS,'02', CLAIM_CHARGE,null)) rent2,
max(decode(CLAIM_CLASS,'03', CLAIM_CHARGE,null)) rent3
from
T_CLAIM_CHARGE_DETAIL
group by 
         CLAIM_YEAR

解决方案 »

  1.   

    试试下面:
    select
    CLAIM_YEAR month_year,
    max(decode(CLAIM_CLASS,'01', CLAIM_CHARGE,null)) rent1,
    max(decode(CLAIM_CLASS,'02', CLAIM_CHARGE,null)) rent2,
    max(decode(CLAIM_CLASS,'03', CLAIM_CHARGE,null)) rent3
    from
    T_CLAIM_CHARGE_DETAIL group by CLAIM_YEAR month_year;
      

  2.   

    改一下:
    select
    CLAIM_YEAR month_year,
    max(decode(CLAIM_CLASS,'01', CLAIM_CHARGE,null)) rent1,
    max(decode(CLAIM_CLASS,'02', CLAIM_CHARGE,null)) rent2,
    max(decode(CLAIM_CLASS,'03', CLAIM_CHARGE,null)) rent3
    from
    T_CLAIM_CHARGE_DETAIL group by CLAIM_YEAR
      

  3.   

    SELECT month_year,
    max(RENT1) RENT1,
    max(RENT2) RENT2,
    max(RENT3) RENT3
    FROM
    (
    SELECT CLAIM_YEAR month_year,
    CLAIN_CHARGE RENT1,
    '' RENT2,
    '' RENT3
    WHERE CLAIM_CLASS = '01'
    UNION ALL
    SELECT CLAIM_YEAR month_year,
    '' RENT1,
    CLAIN_CHARGE  RENT2,
    '' RENT3
    WHERE CLAIM_CLASS = '03'
    UNION ALL
    SELECT CLAIM_YEAR month_year,
    '' RENT1,
    '' RENT2,
    CLAIN_CHARGE RENT3
    WHERE CLAIM_CLASS = '03'
    )
    GROUP BY month_year
      

  4.   

    重新发一下,刚才的有点问题SELECT month_year,
    max(RENT1) RENT1,
    max(RENT2) RENT2,
    max(RENT3) RENT3
    FROM
    (
    SELECT CLAIM_YEAR month_year,
    CLAIN_CHARGE RENT1,
    '' RENT2,
    '' RENT3
    WHERE CLAIM_CLASS = '01'
    UNION ALL
    SELECT CLAIM_YEAR month_year,
    '' RENT1,
    CLAIN_CHARGE  RENT2,
    '' RENT3
    WHERE CLAIM_CLASS = '02'
    UNION ALL
    SELECT CLAIM_YEAR month_year,
    '' RENT1,
    '' RENT2,
    CLAIN_CHARGE RENT3
    WHERE CLAIM_CLASS = '03'
    )
    GROUP BY month_year