oracle怎么行列转换
理想中是显示成这样:
公司 年总计报表
2010年 2011年 2012年 2013年 总计
金额(万元) 300 400 500 600 1800
现实中显示成了这样:
年份 金额
2010 2323
2011 123
2012 123
2013 123
我用DevExpress的GridControl控件做的,我需要改数据库的语句,还是改控件属性代码什么的呢?我用vs2010winfrom窗体做的。
代码里,直接就是 gridcontrol.DataSource = dt; 绑定的数据库。
然后数据库里是是酱紫的:
select substr(DATE,0,4) as 年份,sum(PRICE) as 金额 from 表
GROUP BY SUBSTR(DATE,0,4)
------解决方案--------------------这个在数据库层面就可以搞定丫。类似如下
select sum(decode(t.year,'2012',t.amount,0)) ,sum(t.year,'2013',t.amount,0)..,sum(t.amount) from t
------解决方案--------------------11g有PIVOT、UNPIVOT函数可以用
其他版本可以用DECODE或CASE来处理