SQL数据库SQL语句实现行转列

最近负责的模块设计到统计,由于前期设计思路比较清晰,在统计这块,只需要从数据库中统计出相关数据库就可以了。
统计表:表头:文件类型、(所选年份)1-12月份
但是直接出去来的数据,无法直接在页面上展示:
[img]http://dl2.iteye.com/upload/attachment/0094/2339/cb692417-26d7-3603-9d08-753ffc7ac908.jpg[/img]
执行语句:
select count(*) as totalCount,archiveType,month([archiveDate]) as yuefen from gd_documents where status!=3 and convert(varchar(20),archiveDate,23) like '2014%' group by archiveType,month([archiveDate]) order by archiveType, month([archiveDate])

这样取出来的数据,还需要在后台进行处理,处理的方式会比较麻烦。我就在想,有没有办法可以直接把最后一列的月份直接转换成行,同时类型一样的文件直接合并成一行,同时这一行的统计数据作为哪一月份的数据?
pivot...for
SQL提供了这个个方法,可以实现行转列。
得到的结果将是如下:
[img]http://dl2.iteye.com/upload/attachment/0094/2442/86b7ca48-8910-3cc9-a420-37a9fd4a0a06.jpg[/img]
执行语句:
select * from (select archiveType,count(*) as totalCount,month([archiveDate]) as yuefen from gd_documents where status!=3 and convert(varchar(20),archiveDate,23) like '2014%' group by archiveType,month([archiveDate])) a
pivot (max(totalCount)
for yuefen
in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值