1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| CREATE TABLE table6 ( sdate DATE, sal NUMBER(20,10) );
INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202001', 'YYYYMM'), 749.7997074); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202002', 'YYYYMM'), 989.1732764); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202003', 'YYYYMM'), 275.7157704); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202004', 'YYYYMM'), 472.2227195); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202006', 'YYYYMM'), 222.9311331); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202007', 'YYYYMM'), 37.03906155); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202008', 'YYYYMM'), 729.9000341); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202009', 'YYYYMM'), 120.9572041); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202010', 'YYYYMM'), 441.8720002); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202012', 'YYYYMM'), 454.0350884); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202101', 'YYYYMM'), 292.4960738); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202102', 'YYYYMM'), 244.9181963); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202103', 'YYYYMM'), 772.5048729); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202105', 'YYYYMM'), 778.8382229); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202106', 'YYYYMM'), 53.41619373); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202107', 'YYYYMM'), 0); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202108', 'YYYYMM'), 567.6163141); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202110', 'YYYYMM'), 708.7802233); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202111', 'YYYYMM'), 250.4268242); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202112', 'YYYYMM'), 893.4930988); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202201', 'YYYYMM'), 268.8781552); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202203', 'YYYYMM'), 570.5022024); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202204', 'YYYYMM'), 126.6045656); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202205', 'YYYYMM'), 905.5077431); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202206', 'YYYYMM'), 365.6966979); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202207', 'YYYYMM'), 804.5220551); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202208', 'YYYYMM'), 880.6164334); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202210', 'YYYYMM'), 656.1069145); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202211', 'YYYYMM'), 366.0299052); INSERT INTO table6 (sdate, sal) VALUES (TO_DATE('202212', 'YYYYMM'), 994.1196283);
COMMIT; select * from table6
select to_char(t1.sdate, 'yyyymm') 月份, t1.sal, case when t2.sal is not null and t2.sal <> 0 then concat(round((t1.sal - t2.sal) / t2.sal * 100, 2),'%') else null end as 环比, case when t3.sal is not null and t3.sal <> 0 then concat(round((t1.sal - t3.sal) / t3.sal * 100, 2),'%') else null end as 同比 from table6 t1
left join table6 t2 on t2.sdate = add_months(t1.sdate, -1)
left join table6 t3 on t3.sdate = add_months(t1.sdate, -12) order by t1.sdate;
|