源数据格式如下:
LGORT MENGE DATE
1001 2 20010101
1004 3 20010201
1004 4 20010301
1003 5 20010401
1001 6 20010101
1004 7 20010301
1002 8 20011201如何用sql语句实现如下结果:
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 合计
设备 8 8
材料 8 8
助剂 5 5
管材 3 11 14
合计 8 3 11 5 8 35
要求:
1、判断Lgort:设备(库房编号1001)、材料(库房编号1002)、助剂(库房编号1003)、管材(库房编号1005)、9999(库房编号9999)
2、本月份的sum(menge)
3、判断12个月份,按月统计竖型显示
LGORT MENGE DATE
1001 2 20010101
1004 3 20010201
1004 4 20010301
1003 5 20010401
1001 6 20010101
1004 7 20010301
1002 8 20011201如何用sql语句实现如下结果:
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 合计
设备 8 8
材料 8 8
助剂 5 5
管材 3 11 14
合计 8 3 11 5 8 35
要求:
1、判断Lgort:设备(库房编号1001)、材料(库房编号1002)、助剂(库房编号1003)、管材(库房编号1005)、9999(库房编号9999)
2、本月份的sum(menge)
3、判断12个月份,按月统计竖型显示
然后通过select A(库房编号,'201001'),...from dual,执行
decode(mon,'01',menge_sum,null) as '1月',
decode(mon,'02',menge_sum,null) as '2月',
.......
decode(mon,'11',menge_sum,null) as '11月',
decode(mon,'12',menge_sum,null) as '12月'
from
(
select
decode(Lgort,1001,'设备',1002,'材料',1003,'助剂',1005,'管材',9999 ,'库房') as Lgort,
sum(MENGE) as menge_sum,
substr(DATE,5,2) as mon
from tab
group by Lgort,to_number(substr(DATE,5,2))
)
如果不固定则要使用存储过程动态SQL来处理