17,086
社区成员
发帖
与我相关
我的任务
分享
create table TEST
(
销售日期 NUMBER,
销售单位 VARCHAR2(12),
单位代码 VARCHAR2(12),
销售量 NUMBER,
销售金额 NUMBER
);
insert into test (销售日期, 销售单位, 单位代码, 销售量, 销售金额)
values (201201, 'AA', '001', 100, 100);
insert into test (销售日期, 销售单位, 单位代码, 销售量, 销售金额)
values (201201, 'BB', '002', 200, 200);
insert into test (销售日期, 销售单位, 单位代码, 销售量, 销售金额)
values (201301, 'AA', '001', 90, 90);
insert into test (销售日期, 销售单位, 单位代码, 销售量, 销售金额)
values (201301, 'CC', '003', 80, 80);
commit;
SELECT 销售单位,
单位代码,
SUM(销售量) 销售量,
SUM(销售金额) 销售金额,
SUM(销售量1) 销售量,
SUM(销售金额1) 销售金额
FROM (SELECT 销售日期,
销售单位,
单位代码,
SUM(销售量) 销售量,
SUM(销售金额) 销售金额,
0 销售量1,
0 销售金额1
FROM TEST
WHERE 销售日期 = '201301'
GROUP BY 销售日期, 销售单位, 单位代码
UNION ALL
SELECT 销售日期,
销售单位,
单位代码,
0 销售量,
0 销售金额,
SUM(销售量) 销售量1,
SUM(销售金额) 销售金额1
FROM TEST
WHERE 销售日期 = TO_CHAR(ADD_MONTHS(TO_DATE('201301', 'YYYYMM'), -12),
'YYYYMM')
GROUP BY 销售日期, 销售单位, 单位代码)
GROUP BY 销售单位, 单位代码;
销售单位 单位代码 销售量 销售金额 销售量 销售金额
------------ ------------ ---------- ---------- ---------- ----------
CC 003 80 80 0 0
AA 001 90 90 100 100
BB 002 0 0 200 200
create table tb
(
fmonth varchar2(50),
fcompany varchar2(50),
fcode varchar2(50),
fsalesAmount number,
fincome number
);
insert into tb values('201201','AA','001',100 ,100);
insert into tb values('201201','BB','002',200,200 );
insert into tb values('201301','AA','001',90 , 90);
insert into tb values('201301','CC','003',80 , 80);
select a.fcompany,a.fcode,a.fsalesamount,a.fincome,nvl(b.fsalesamount,0) lastYearfsalesamount,nvl(b.fincome,0) lastYearfincome
from tb a
left join tb b
on to_date(a.fmonth||'01','YYYYMMDD')=add_months( to_date(b.fmonth||'01','YYYYMMDD'),12)
and a.fcompany= b.fcompany
where a.fmonth='201301'
--drop table tb;
SELECT 销售单位,
销售单位,
SUM(销售量) 销售量,
SUM(销售金额) 销售金额,
SUM(销售量1) 销售量,
SUM(销售金额1) 销售金额
FROM (
SELECT 销售日期, 销售单位, 单位代码,
SUM(销售量) 销售量,
SUM(销售金额) 销售金额, 0 销售量1, 0 销售金额1
FROM TEST
WHERE 销售日期 = '201301'
GROUP BY 销售日期, 销售单位, 单位代码
UNION ALL
SELECT 销售日期, 销售单位, 单位代码, 0 销售量, 0 销售金额,
SUM(销售量) 销售量1, SUM(销售金额) 销售金额1
FROM TEST
WHERE 销售日期 = TO_CHAR(ADD_MONTHS(TO_DATE('201301', 'YYYYMM'), -12),'YYYYMM')
GROUP BY 销售日期, 销售单位, 单位代码
)GROUP BY 销售单位, 单位代码;
销售单位 销售单位 销售量 销售金额 销售量 销售金额
------------ ------------ ---------- ---------- ---------- ----------
CC 003 80 80 0 0
AA 001 90 90 100 100
BB 002 0 0 200 200