现在有表中nd,yf,bumen,shuliang,xiaoshou_dm这5列。用来统计某年某月某部门某xiaoshou_dm的数量。xiaoshou_dm这列里面有5种值a,b,c,d,e
我能不能通过视图把这个表的结构变成nd,yf,bumen,dm_a,dm_b,dm_c,dm_d,dm_e这种结构,dm_a,dm_b,dm_c,dm_d,dm_e这5列里放的是某部门的数量。
谢谢各位了!

解决方案 »

  1.   


    select nd,yf,bumen,
            sum(case when xiaoshou_dm = 'a' then shuliang else 0) end dm_a,
            sum(case when xiaoshou_dm = 'b' then shuliang else 0) end dm_b,
            sum(case when xiaoshou_dm = 'c' then shuliang else 0) end dm_c,
            sum(case when xiaoshou_dm = 'd' then shuliang else 0) end dm_d,
            sum(case when xiaoshou_dm = 'e' then shuliang else 0) end dm_e,
      from t
     group by nd,yf,bumen
      

  2.   

    典型行列转换,使用decode,case函数都是可以的