首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

一个简单的SQL,高手帮忙写.该怎么处理

2012-01-31 
一个简单的SQL,高手帮忙写.S表中:typeacct_monthchargeDDN及其它2006102440.5DDN及其它2006111577.2DDN及

一个简单的SQL,高手帮忙写.
S表中:
type           acct_month       charge
DDN及其它2006102440.5
DDN及其它2006111577.2
DDN及其它20061215555.64
公话超市20061037.41
公话超市2006111681.51
公话超市20061259994.4
甲类电话2006101159.58
甲类电话2006115699.18
甲类电话200612105507.23
甲类宽带2006104750.28
甲类宽带20061110993.9
甲类宽带200612137772.27
其它公话200610110
其它公话200611149.15
其它公话200612481.89

想得到结果:
type200610200611200612总计
DDN及其它2440.51577.215555.6419573.34
公话超市37.411681.5159994.461713.32
甲类电话1159.585699.18105507.23112365.99
甲类宽带4750.2810993.9137772.27153516.45
其它公话110149.15481.89741.04
总计8497.7720100.94319311.43347910.14

说白了就是实现EXCEL中 "数据透视表 "功能
用SQL语句应该怎么写?



[解决办法]
SELECT TYPE,
SUM(CASE acct_month WHEN '200610 ' THEN charge ELSE NULL END) NY200610,
SUM(CASE acct_month WHEN '200611 ' THEN charge ELSE NULL END) NY200611,
SUM(CASE acct_month WHEN '200612 ' THEN charge ELSE NULL END) NY200612
FROM TEST123 GROUP BY TYPE;

热点排行