有一张表如下:
bmbh    bmmc    xmdm    xmmc      zj
01      市场部    01      项目1    2000
01      市场部    02      项目2    3000
01      市场部    03      项目3    1000
02      开发部    01      项目1    2300
02      开发部    02      项目2    2400
02      开发部    03      项目3    3300想实现下面的显示结果bmbh     bmmc     项目1  项目2   项目3
01       市场部    2000   3000    1000
02       开发部    2300   2400    3300请问该如何实现?

解决方案 »

  1.   

    select bmbh  ,  bmmc,
           sum(decode(xmdm  ,'01',zj,0)) 项目1,
           sum(decode(xmdm  ,'02,zj,0)) 项目1,
           sum(decode(xmdm  ,'03,zj,0)) 项目1
    from table 
    group by bmbh  ,  bmmc
      

  2.   

    select bmbh,bmmc,sum(decode(xmmc,'项目1',zj)) 项目1,
    sum(decode(xmmc,'项目2',zj)) 项目2,
    sum(decode(xmmc,'项目3',zj)) 项目3 from t group by bmbh
      

  3.   

    select bmbh,bmmc,max(case xmdm when '01' then zj else 0 end) '项目1',
                     max(case xmdm when '02' then zj else 0 end) '项目2',
                     max(case xmdm when '03' then zj else 0 end) '项目3'
    from 表
    group by bmbh,bmmc
    order bmbh