SELECT nowtime.EC_CITY_NAME as EC_CITY_NAME, nowtime.EC_ITEM_TIME as EC_ITEM_TIME,nowtime.EC_ARENA_NAME as EC_ARENA_NAME,
nowtime.TOTAL_USAGE as NOW_TOTAL_USAGE,
nowtime.AIRCON_USAGE as NOW_AIRCON_USAGE,
nowtime.MAIN_USAGE as NOW_MAIN_USAGE,
nowtime.GENERATOR_USAGE as NOW_GENERATOR_USAGE,
lastyear.TOTAL_USAGE as YEAR_TOTAL_USAGE,
lastyear.AIRCON_USAGE as YEAR_AIRCON_USAGE,
lastyear.MAIN_USAGE as YEAR_MAIN_USAGE,
lastyear.GENERATOR_USAGE as YEAR_GENERATOR_USAGE
FROM
(SELECT tab1.EC_CITY_NAME as EC_CITY_NAME, tab1.EC_ITEM_TIME as EC_ITEM_TIME,tab1.EC_ARENA_NAME as EC_ARENA_NAME,
SUM(TOTAL_USAGE) as TOTAL_USAGE,
SUM(AIRCON_USAGE) as AIRCON_USAGE,
SUM(MAIN_USAGE) as MAIN_USAGE,
SUM(GENERATOR_USAGE) as GENERATOR_USAGE
FROM
(SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcs.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcs.TOTAL_USAGE as TOTAL_USAGE,
round(rcs.AIRCON_USAGE,2) as AIRCON_USAGE,
rcs.MAIN_USAGE as MAIN_USAGE,
rcs.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_BTS rcs
ON rcs.BTSID = rb.ZGID
UNION
SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcm.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcm.TOTAL_USAGE as TOTAL_USAGE,
round(rcm.AIRCON_USAGE,2) as AIRCON_USAGE,
rcm.MAIN_USAGE as MAIN_USAGE,
rcm.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_MACHROOM rcm
ON rcm.MACHROOMID = rb.ZGID) tab1
GROUP BY tab1.EC_CITY_NAME, tab1.EC_ITEM_TIME, tab1.EC_ARENA_NAME
) nowtime
join
(SELECT tab1.EC_CITY_NAME as EC_CITY_NAME, to_char(add_months(to_date(tab1.EC_ITEM_TIME, 'yyyymm'),1),'yyyymm') as EC_ITEM_TIME,
tab1.EC_ARENA_NAME as EC_ARENA_NAME,
SUM(TOTAL_USAGE) as TOTAL_USAGE,
SUM(AIRCON_USAGE) as AIRCON_USAGE,
SUM(MAIN_USAGE) as MAIN_USAGE,
SUM(GENERATOR_USAGE) as GENERATOR_USAGE
FROM
(SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcs.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcs.TOTAL_USAGE as TOTAL_USAGE,
round(rcs.AIRCON_USAGE,2) as AIRCON_USAGE,
rcs.MAIN_USAGE as MAIN_USAGE,
rcs.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_BTS rcs
ON rcs.BTSID = rb.ZGID
UNION
SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcm.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcm.TOTAL_USAGE as TOTAL_USAGE,
round(rcm.AIRCON_USAGE,2) as AIRCON_USAGE,
rcm.MAIN_USAGE as MAIN_USAGE,
rcm.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_MACHROOM rcm
ON rcm.MACHROOMID = rb.ZGID) tab1
GROUP BY tab1.EC_CITY_NAME, tab1.EC_ITEM_TIME, tab1.EC_ARENA_NAME
) lastyear
ON
lastyear.EC_CITY_NAME = nowtime.EC_CITY_NAME
AND lastyear.EC_ARENA_NAME = nowtime.EC_ARENA_NAME
AND lastyear.EC_ITEM_TIME = nowtime.EC_ITEM_TIME
nowtime.TOTAL_USAGE as NOW_TOTAL_USAGE,
nowtime.AIRCON_USAGE as NOW_AIRCON_USAGE,
nowtime.MAIN_USAGE as NOW_MAIN_USAGE,
nowtime.GENERATOR_USAGE as NOW_GENERATOR_USAGE,
lastyear.TOTAL_USAGE as YEAR_TOTAL_USAGE,
lastyear.AIRCON_USAGE as YEAR_AIRCON_USAGE,
lastyear.MAIN_USAGE as YEAR_MAIN_USAGE,
lastyear.GENERATOR_USAGE as YEAR_GENERATOR_USAGE
FROM
(SELECT tab1.EC_CITY_NAME as EC_CITY_NAME, tab1.EC_ITEM_TIME as EC_ITEM_TIME,tab1.EC_ARENA_NAME as EC_ARENA_NAME,
SUM(TOTAL_USAGE) as TOTAL_USAGE,
SUM(AIRCON_USAGE) as AIRCON_USAGE,
SUM(MAIN_USAGE) as MAIN_USAGE,
SUM(GENERATOR_USAGE) as GENERATOR_USAGE
FROM
(SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcs.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcs.TOTAL_USAGE as TOTAL_USAGE,
round(rcs.AIRCON_USAGE,2) as AIRCON_USAGE,
rcs.MAIN_USAGE as MAIN_USAGE,
rcs.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_BTS rcs
ON rcs.BTSID = rb.ZGID
UNION
SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcm.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcm.TOTAL_USAGE as TOTAL_USAGE,
round(rcm.AIRCON_USAGE,2) as AIRCON_USAGE,
rcm.MAIN_USAGE as MAIN_USAGE,
rcm.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_MACHROOM rcm
ON rcm.MACHROOMID = rb.ZGID) tab1
GROUP BY tab1.EC_CITY_NAME, tab1.EC_ITEM_TIME, tab1.EC_ARENA_NAME
) nowtime
join
(SELECT tab1.EC_CITY_NAME as EC_CITY_NAME, to_char(add_months(to_date(tab1.EC_ITEM_TIME, 'yyyymm'),1),'yyyymm') as EC_ITEM_TIME,
tab1.EC_ARENA_NAME as EC_ARENA_NAME,
SUM(TOTAL_USAGE) as TOTAL_USAGE,
SUM(AIRCON_USAGE) as AIRCON_USAGE,
SUM(MAIN_USAGE) as MAIN_USAGE,
SUM(GENERATOR_USAGE) as GENERATOR_USAGE
FROM
(SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcs.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcs.TOTAL_USAGE as TOTAL_USAGE,
round(rcs.AIRCON_USAGE,2) as AIRCON_USAGE,
rcs.MAIN_USAGE as MAIN_USAGE,
rcs.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_BTS rcs
ON rcs.BTSID = rb.ZGID
UNION
SELECT
sr.NAME as EC_CITY_NAME,
to_char(rcm.READTIME,'yyyymm') as EC_ITEM_TIME,
rb.BTSNAME as EC_ARENA_NAME,
rcm.TOTAL_USAGE as TOTAL_USAGE,
round(rcm.AIRCON_USAGE,2) as AIRCON_USAGE,
rcm.MAIN_USAGE as MAIN_USAGE,
rcm.GENERATOR_USAGE as GENERATOR_USAGE
FROM SYS_REGION sr
full join RES_BTS rb
ON sr.CODE = rb.CITYID
join RPT_CAP_MACHROOM rcm
ON rcm.MACHROOMID = rb.ZGID) tab1
GROUP BY tab1.EC_CITY_NAME, tab1.EC_ITEM_TIME, tab1.EC_ARENA_NAME
) lastyear
ON
lastyear.EC_CITY_NAME = nowtime.EC_CITY_NAME
AND lastyear.EC_ARENA_NAME = nowtime.EC_ARENA_NAME
AND lastyear.EC_ITEM_TIME = nowtime.EC_ITEM_TIME