select dense_rank()over(order by A.jgfdmc) as 序号,
A.jgfdmc as 产品管理机构,
A.cpqc as 产品全称,
A.clrq as 成立日期,
A.zxgm as "本季度末余额(亿元)",
B.last_quarter_zxgm as "上一季度末余额(亿元)",
case when B.last_quarter_zxgm <> 0 then round(sum(A.zxgm-B.last_quarter_zxgm)/B.last_quarter_zxgm*100,2) else null end as "变动(%)"
from
(select round(sum(A.QMYE)/100000000,3) as zxgm, A.JGFDMC, A.cpqc, B.clrq
FROM
(select QMYE,JGFDMC, cpqc
FROM ZBD_YN_ZXCPZCFZB_D
where dis_daily= '${date1}' and SJRQ = '${sjrq}' and ZCFZLX = '资产'
and JGFDMC not in ('平安不动产有限公司','平安养老保险股份有限公司','人保投资控股有限公司','中保投资有限责任公司','中国人寿养老保险股份有限公司'))A
left join ZBD_YN_ZXCPJBXXB_D B
on A.CPQC = B.CPQC
where B.CPZZZT = '本报告期未终止' and B.DIS_DAILY = '${date1}' AND B.SJRQ = '${sjrq}'
GROUP BY A.JGFDMC, A.cpqc, B.clrq)A
LEFT JOIN (
select A.jgfdmc, A.cpqc, B.clrq, round(sum(A.QMYE)/100000000,3) as last_quarter_zxgm
FROM
(SELECT jgfdmc, cpqc,QMYE
FROM ZBD_YN_ZXCPZCFZB_D
where dis_daily= '${date1}'
and SJRQ = REPLACE(TO_CHAR(ADD_MONTHS(TO_DATE('${sjrq}', 'yyyymmdd'), -3), 'yyyy-mm-dd'), '-', '')
and ZCFZLX = '资产'
and JGFDMC not in ('平安不动产有限公司','平安养老保险股份有限公司','人保投资控股有限公司','中保投资有限责任公司','中国人寿养老保险股份有限公司'))A
left join ZBD_YN_ZXCPJBXXB_D B
on A.CPQC = B.CPQC
where B.CPZZZT = '本报告期未终止' and B.DIS_DAILY = '${date1}'
AND B.SJRQ = REPLACE(TO_CHAR(ADD_MONTHS(TO_DATE('${sjrq}', 'yyyymmdd'), -3), 'yyyy-mm-dd'), '-', '')
GROUP BY A.jgfdmc, A.cpqc, B.clrq)B
ON A.jgfdmc=B.jgfdmc and A.cpqc = B.cpqc and A.clrq = B.clrq
group by A.jgfdmc,A.cpqc,A.clrq,A.zxgm,B.last_quarter_zxgm;
with t1 as(
SELECT A.CYJGLX, A.CYJGQC, A.CPQC, A.qmcygm_now,B.last_quarter_qmcygm, SUM(A.qmcygm_now - B.last_quarter_qmcygm) AS bjdbd
FROM (SELECT A.CYJGLX,A.CYJGQC,A.CPQC,A.qmcygm_now,A.last_quarter_qmcygm,A.CYRZH
FROM (select CYJGLX,CYJGQC,CPQC,round(QMCYGM/10000,2) as qmcygm_now,null as last_quarter_qmcygm,CYRZH
from ZBD_YN_ZXCPCYRFEXXB_D
WHERE DIS_DAILY = '${date1}'
AND SJRQ = '${sjrq}'
AND JGFDMC not in ('平安不动产有限公司','平安养老保险股份有限公司','人保投资控股有限公司','中保投资有限责任公司','中国人寿养老保险股份有限公司'))A
left join ZBD_YN_ZXCPJBXXB_D B ON A.CPQC = B.CPQC
WHERE B.CPZZZT = '本报告期未终止'
and B.DIS_DAILY = '${date1}'
and SJRQ = '${sjrq}')A
left join
(SELECT A.CYJGLX,A.CYJGQC,A.CPQC,A.qmcygm_now,A.last_quarter_qmcygm,A.CYRZH
FROM (select CYJGLX,CYJGQC,CPQC,null as qmcygm_now,round(QMCYGM/10000,2) as last_quarter_qmcygm,CYRZH
from ZBD_YN_ZXCPCYRFEXXB_D
WHERE DIS_DAILY = '${date1}'
AND SJRQ = REPLACE(TO_CHAR(ADD_MONTHS(TO_DATE('${sjrq}', 'yyyymmdd'), -3), 'yyyy-mm-dd'), '-', '')
AND JGFDMC not in ('平安不动产有限公司','平安养老保险股份有限公司','人保投资控股有限公司','中保投资有限责任公司','中国人寿养老保险股份有限公司'))A
LEFT JOIN ZBD_YN_ZXCPJBXXB_D B ON A.CPQC = B.CPQC
WHERE B.CPZZZT = '本报告期未终止'
and B.DIS_DAILY = '${date1}'
and SJRQ = REPLACE(TO_CHAR(ADD_MONTHS(TO_DATE('${sjrq}', 'yyyymmdd'), -3), 'yyyy-mm-dd'), '-', '')) B
ON A.CYJGLX = B.CYJGLX AND A.CYJGQC = B.CYJGQC AND A.CPQC = B.CPQC AND A.CYRZH = B.CYRZH
GROUP BY A.CYJGLX,A.CYJGQC,A.CPQC,A.qmcygm_now,B.last_quarter_qmcygm
order by A.CYJGLX
),
t2 as (
SELECT '保险集团公司及保险控股公司' as CYJGLX, null as CYJGQC,null as CPQC,sum(t1.qmcygm_now) as qmcygm_now,
sum(case when t1.last_quarter_qmcygm is null then 0 else t1.last_quarter_qmcygm end) as last_quarter_qmcygm,
SUM(t1.qmcygm_now-t1.last_quarter_qmcygm) AS bjdbd
from t1 where cyjglx = '保险集团公司及保险控股公司'
union all
SELECT '保险资产管理公司' as CYJGLX,null as CYJGQC,null as CPQC,sum(t1.qmcygm_now) as qmcygm_now,
sum(case when t1.last_quarter_qmcygm is null then 0 else t1.last_quarter_qmcygm end) as last_quarter_qmcygm,
SUM(t1.qmcygm_now-t1.last_quarter_qmcygm) AS bjdbd
from t1 where cyjglx = '保险资产管理公司'
union all
SELECT '财产保险公司' as CYJGLX,null as CYJGQC,null as CPQC,sum(t1.qmcygm_now) as qmcygm_now,
sum(case when t1.last_quarter_qmcygm is null then 0 else t1.last_quarter_qmcygm end) as last_quarter_qmcygm,
SUM(t1.qmcygm_now-t1.last_quarter_qmcygm) AS bjdbd
from t1 where cyjglx = '财产保险公司'
union all
SELECT '证券公司' as CYJGLX,null as CYJGQC,null as CPQC,sum(t1.qmcygm_now) as qmcygm_now,
sum(case when t1.last_quarter_qmcygm is null then 0 else t1.last_quarter_qmcygm end) as last_quarter_qmcygm,
SUM(t1.qmcygm_now-t1.last_quarter_qmcygm) AS bjdbd
from t1 where cyjglx = '证券公司'
union all
SELECT '人身保险公司' as CYJGLX,null as CYJGQC,null as CPQC,sum(t1.qmcygm_now) as qmcygm_now,
sum(case when t1.last_quarter_qmcygm is null then 0 else t1.last_quarter_qmcygm end) as last_quarter_qmcygm,
SUM(t1.qmcygm_now-t1.last_quarter_qmcygm) AS bjdbd
from t1 where cyjglx = '人身保险公司'
union all
SELECT '其它' as CYJGLX,null as CYJGQC,null as CPQC,sum(t1.qmcygm_now) as qmcygm_now
sum(case when t1.last_quarter_qmcygm is null then 0 else t1.last_quarter_qmcygm end) as last_quarter_qmcygm,
SUM(t1.qmcygm_now-t1.last_quarter_qmcygm) AS bjdbd
from t1 where cyjglx = '其它'
union all
SELECT t1.CYJGLX,t1.CYJGQC,t1.CPQC,t1.qmcygm_now,
case when t1.last_quarter_qmcygm is null then 0 else t1.last_quarter_qmcygm end as last_quarter_qmcygm,
t1.qmcygm_now-t1.last_quarter_qmcygm AS bjdbd
from t1
)
select CYJGLX,CYJGQC,CPQC,qmcygm_now,last_quarter_qmcygm,bjdbd
from t2
order by CYJGLX,CPQC;