求高手回答!现在有一个表存有一年里每天的营业额,但是按月分组,现在要求用一个SQ实现,如下:用的oracle表结构:公司code(key) 管理code(key) 部门code 顾客code 日期(格式:YYYYMMDD) 交易额
111 0001 01 V001 20130101 1000
111 0002 01 V001 20130201 20000
111 0003 01 V001 20130212 2000
111 0004 01 V001 20130201 200000
111 0005 01 V001 20130303 3000
111 0006 01 V001 20130305 5000 抽出结果: 一月 二月 三月
record1 1000 20000 3000
record2 空值 2000 5000
record3 空值 200000 空值
注:其实是要查找相同部门相同顾客每月的数据,但每个月的数据条数不一定,也有可能没有,没有就用空值……SQLOracle
111 0001 01 V001 20130101 1000
111 0002 01 V001 20130201 20000
111 0003 01 V001 20130212 2000
111 0004 01 V001 20130201 200000
111 0005 01 V001 20130303 3000
111 0006 01 V001 20130305 5000 抽出结果: 一月 二月 三月
record1 1000 20000 3000
record2 空值 2000 5000
record3 空值 200000 空值
注:其实是要查找相同部门相同顾客每月的数据,但每个月的数据条数不一定,也有可能没有,没有就用空值……SQLOracle
sum(decode(to_char(日期,'MM'),'02',交易额,0)) 二月
.......
from ...
group by 部门,顾客这里你前面说的空值以0替代
with t1 as
(select 部门code, 顾客code, substr(日期, 1, 6) 日期, sum(交易额) 交易额
from t
group by 部门code, 顾客code, substr(日期, 1, 6))
select *
from t1 pivot(sum(交易额) for 日期 in('201301' 一月份,
'201302' 二月份,
'201303' 三月份))