求哪位大神看看,下面这段sql能优化吗?
0
SELECT
BR_NO, --机构号
SUM(CASE WHEN SUBSTR(A.ACC_HRT,0,3) IN ('122', '123', '124', '125', '126', '127', '128', '130') OR SUBSTR(A.ACC_HRT,0,5)='12911'AND A.DC_IND = '2' THEN -A.AMT
WHEN SUBSTR(A.ACC_HRT,0,3) IN ('122', '123', '124', '125', '126', '127', '128', '130') OR SUBSTR(A.ACC_HRT,0,5)='12911' AND A.DC_IND = '1' THEN A.AMT
END)/10000 AS DKYE, --贷款余额
SUM(CASE WHEN A.ACC_HRT IN ('13001', '13002', '13003', '13004') AND A.DC_IND = '2' THEN -A.AMT
WHEN A.ACC_HRT IN ('13001', '13002', '13003', '13004') AND A.DC_IND = '1' THEN A.AMT
END)/10000 AS BLDK, --不良贷款
SUM(CASE WHEN SUBSTR(A.ACC_HRT,0,3) IN ('205','201','217','251','221','222','223','243','234','235','236','211','215','226','227') OR
SUBSTR(A.ACC_HRT, 0, 5) IN ('20201', '20202') AND A.DC_IND = '2' THEN A.AMT
WHEN SUBSTR(A.ACC_HRT,0,3) IN ('205','201','217','251','221','222','223','243','234','235','236','211','215','226','227') OR
SUBSTR(A.ACC_HRT, 0, 5) IN ('20201', '20202') AND A.DC_IND = '1' THEN -A.AMT
END)/10000 AS CKYE, --存款余额
SUM(CASE WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('211', '215') OR SUBSTR(A.ACC_HRT, 0, 5) = '20202' AND A.DC_IND = '2' THEN A.AMT
WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('211', '215') OR SUBSTR(A.ACC_HRT, 0, 5) = '20202' AND A.DC_IND = '1' THEN -A.AMT
END)/10000 AS CXCK, --储蓄存款
SUM(CASE WHEN A.ACC_HRT IN ('23101', '23102', '23103', '23104', '23110') THEN A.AMT
END)/10000 AS XZYYHJK, --向中央银行借款
SUM(CASE WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('301', '302', '303', '304', '312') THEN A.AMT
END)/10000 AS SYZQYN, --所有者权益类
SUM(CASE WHEN A.ACC_HRT = '31208' THEN A.AMT
END)/ 10000 AS WFPLRN, --未分配利润
SUM(CASE WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('501','502','511','514','506','538','512','513','515') THEN A.AMT
WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('521','522','527','537','533','523','530','532','534','535','529','531','536','539','540') THEN -A.AMT
END)/10000 AS LRZE --利润总额
FROM test1.DC_LOG_BAK A, test1.BRNO_PARENTSUNTIL B
WHERE A.TX_OPN_BR_NO = B.BR_NO_ST
AND A.STS = '0'
AND CUR_NO = '01'
AND A.tx_date = '${date}'
BR_NO, --机构号
SUM(CASE WHEN SUBSTR(A.ACC_HRT,0,3) IN ('122', '123', '124', '125', '126', '127', '128', '130') OR SUBSTR(A.ACC_HRT,0,5)='12911'AND A.DC_IND = '2' THEN -A.AMT
WHEN SUBSTR(A.ACC_HRT,0,3) IN ('122', '123', '124', '125', '126', '127', '128', '130') OR SUBSTR(A.ACC_HRT,0,5)='12911' AND A.DC_IND = '1' THEN A.AMT
END)/10000 AS DKYE, --贷款余额
SUM(CASE WHEN A.ACC_HRT IN ('13001', '13002', '13003', '13004') AND A.DC_IND = '2' THEN -A.AMT
WHEN A.ACC_HRT IN ('13001', '13002', '13003', '13004') AND A.DC_IND = '1' THEN A.AMT
END)/10000 AS BLDK, --不良贷款
SUM(CASE WHEN SUBSTR(A.ACC_HRT,0,3) IN ('205','201','217','251','221','222','223','243','234','235','236','211','215','226','227') OR
SUBSTR(A.ACC_HRT, 0, 5) IN ('20201', '20202') AND A.DC_IND = '2' THEN A.AMT
WHEN SUBSTR(A.ACC_HRT,0,3) IN ('205','201','217','251','221','222','223','243','234','235','236','211','215','226','227') OR
SUBSTR(A.ACC_HRT, 0, 5) IN ('20201', '20202') AND A.DC_IND = '1' THEN -A.AMT
END)/10000 AS CKYE, --存款余额
SUM(CASE WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('211', '215') OR SUBSTR(A.ACC_HRT, 0, 5) = '20202' AND A.DC_IND = '2' THEN A.AMT
WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('211', '215') OR SUBSTR(A.ACC_HRT, 0, 5) = '20202' AND A.DC_IND = '1' THEN -A.AMT
END)/10000 AS CXCK, --储蓄存款
SUM(CASE WHEN A.ACC_HRT IN ('23101', '23102', '23103', '23104', '23110') THEN A.AMT
END)/10000 AS XZYYHJK, --向中央银行借款
SUM(CASE WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('301', '302', '303', '304', '312') THEN A.AMT
END)/10000 AS SYZQYN, --所有者权益类
SUM(CASE WHEN A.ACC_HRT = '31208' THEN A.AMT
END)/ 10000 AS WFPLRN, --未分配利润
SUM(CASE WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('501','502','511','514','506','538','512','513','515') THEN A.AMT
WHEN SUBSTR(A.ACC_HRT, 0, 3) IN ('521','522','527','537','533','523','530','532','534','535','529','531','536','539','540') THEN -A.AMT
END)/10000 AS LRZE --利润总额
FROM test1.DC_LOG_BAK A, test1.BRNO_PARENTSUNTIL B
WHERE A.TX_OPN_BR_NO = B.BR_NO_ST
AND A.STS = '0'
AND CUR_NO = '01'
AND A.tx_date = '${date}'
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
seng - 从事BI、大数据、数据分析工作 2017-06-12 回答
赞同来自:
慢的话,你要把执行计划拿出来看看?