有如下数据
orgid  orgname   dj  djmc      count
1        财务部  01  非常满意   2
1        财务部  02  满意       1
2        综合部  01  满意       2希望显示的数据
orgname   dj1        count dj2  count
财务部    非常满意   2     满意  1 
综合部    非常满意   0     满意  1     

解决方案 »

  1.   

    with tt as(
      select 1 orgid, '财务部' organame, '01' dj,'非常满意' djmc, 2 cnt from dual union all
      select 1 orgid, '财务部' organame, '02' dj,'满意'     djmc, 1 cnt from dual union all
      select 2 orgid, '综合部' organame, '01' dj,'满意'     djmc, 2 cnt from dual)
    SELECT tt.organame,
           '非常满意' djmc1,
           SUM(decode(djmc, '非常满意', cnt, 0)) dj1,
           '满意' djmc1,
           SUM(decode(djmc, '满意', cnt, 0)) dj2
      FROM tt
     GROUP BY organame
      

  2.   

    WITH TAB AS 
    (
    SELECT 1 orgid ,'财务部' orgname ,'01' dj ,'非常满意' djmc, 2 count FROM DUAL
    UNION ALL
    SELECT 1 orgid ,'财务部' orgname ,'02' dj ,'满意' djmc, 1 count FROM DUAL
    UNION ALL
    SELECT 1 orgid ,'管理部' orgname ,'02' dj ,'满意' djmc, 2 count FROM DUAL
    )
    SELECT orgname ,
    max(DECODE(djmc,'非常满意',djmc,0)) AS DJ1 ,
    max(DECODE(djmc,'非常满意',COUNT,0 )) AS COUNT1 ,
    max(DECODE(djmc,'满意',djmc,0 )) AS DJ2 ,
    max(DECODE(djmc,'满意',COUNT,0 )) AS COUNT2 
    FROM TAB
    group by orgnameORGNAME DJ1 COUNT1 DJ2 COUNT2
    财务部 非常满意 2 满意 1
    管理部 0 0 满意 2