oracle怎么行列转换

奶油妹纸 2013-05-17 11:33:13
理想中是显示成这样:

公司 年总计报表
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)
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010412956 2013-05-17
  • 打赏
  • 举报
回复
这个在数据库层面就可以搞定丫。类似如下 select sum(decode(t.year,'2012',t.amount,0)) ,sum(t.year,'2013',t.amount,0)..,sum(t.amount) from t
sych888 2013-05-17
  • 打赏
  • 举报
回复
11g有PIVOT、UNPIVOT函数可以用 其他版本可以用DECODE或CASE来处理
  • 打赏
  • 举报
回复
基本的行转列 判断下就可以了

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧