现在有表中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列里放的是某部门的数量。
谢谢各位了!
------解决方案--------------------
- SQL code
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
------解决方案--------------------
典型行列转换,使用decode,case函数都是可以的
------解决方案--------------------
可以自己写个通用的function