求一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
如果卡的数量会变,那就要使用动态的行转列了,需要写存储过程