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

求1SQL语句 马上结贴

2013-12-04 
求一SQL语句 马上结贴本帖最后由 colorsky_010 于 2013-09-17 19:28:53 编辑如题。在表A中,有终端号(ZDH),

求一SQL语句 马上结贴
本帖最后由 colorsky_010 于 2013-09-17 19:28:53 编辑 如题。
在表A中,有终端号(ZDH),卡号(KH),消费金额(XFJE),消费时间(XFSJ)4个字段,假设目前有3个终端,一共有5张卡进行了消费,想统计在每个终端上每个卡号的消费总金额。
注:5张卡不一定都在3个终端上进行了消费。

举例:
终端号   卡号1    卡号2    卡号3    卡号4    卡号5
11         18         5          0          2          0
22         0          0          5          0          20
233        4          9          0          0          0
[解决办法]
如果只有五张卡,则是典型的行转列,可用以下sql


SELECT ZDH,SUM(DECODE(KH,'卡号1',KH,0)) 卡号1,
           SUM(DECODE(KH,'卡号1',KH,0)) 卡号2,
           SUM(DECODE(KH,'卡号1',KH,0)) 卡号3,
           SUM(DECODE(KH,'卡号1',KH,0)) 卡号4,
           SUM(DECODE(KH,'卡号1',KH,0)) 卡号5 
FROM TABLE
GROUP BY ZDH

如果卡的数量会变,那就要使用动态的行转列了,需要写存储过程

热点排行