1.基础表:
流水号 营业厅号 交易额 交易时间
求交叉报表:
--创建流水序列
SQL> create sequence
sales_queue
2 increment by 1
3 start with 1
4 nomaxvalue
5 nocycle
6 cache 10;
序列已创建。
--创建表
create table sales(sid
varchar2(20),marketid varchar2(20),cash number,transdate
date)
SID MARKETID CASH
TRANSDATE
-------------------- --------------------
---------- --------------
sale1 1001 1000
02-2月
-07
sale2 1001 1500
02-2月
-07
sale3 1002 2500 02-5月 -07
sale4 1003 3500
02-8月
-07
sale5 1003 500
02-12月-07
(1)按季度求交易额
select sum(case extract(month from
trunc(transdate,'q'))when 1 then cash end)第一季度,
sum(case extract(month from
trunc(transdate,'q'))when 4 then cash end)第二季度 ,
sum(case extract(month from
trunc(transdate,'q'))when 7 then cash end)第三季度,
sum(case extract(month from
trunc(transdate,'q'))when 10 then cash
end)第四季度,sum(cash)总交易额 from sales
第一季度 第二季度 第三季度 第四季度 总交易额
---------- ---------- ----------
---------- ----------
2500 2500 3500 500 9000
(2)按营业厅求交易额
SQL> select sum(case marketid when
'1001' then cash end)营业厅一,
2 sum(case marketid when '1002' then cash end)营业厅二,
3 sum(case marketid when '1003' then cash end)营业厅三
4 from sales;
营业厅一 营业厅二 营业厅三
---------- ----------
----------
2500 2500 4000