You are on page 1of 6

CREATE SET VOLATILE TABLE TMP_JONA_1 AS

(
SELECT
CODSBS || CODEMPRESA || CARTERA CONCATENADO,
CODMES,
CODSBS,
CODEMPRESA,
CODCUENTARCC,
TIPCREDITO,
CODCONDICION,
CODCLAVECLI,
CODUNICOCLI,
FECACTUALIZACIONTABLA,
CASE
WHEN TIPCREDITO IN ('11', '12') AND SUBSTR(CODCUENTARCC,1,2)='14'
AND (SUBSTR(CODCUENTARCC,4,5) IN
('10302','40302','50302','60302') OR SUBSTR(CODCUENTARCC,4,7) IN
('5031902','6031902'))
THEN 'Tarj'
WHEN TIPCREDITO='12' AND SUBSTR(CODCUENTARCC,1,2)='14'
AND SUBSTR(CODCUENTARCC,4,7) IN
('1030602','4030602','5030602','6030602')
THEN 'Vehi'
WHEN TIPCREDITO='13' AND SUBSTR(CODCUENTARCC,1,2)='14'
AND (SUBSTR(CODCUENTARCC,4,5) IN
('10423','10424','10425','40423','40424','40425','50423','50424','50425','60423','6
0424','60425')
OR SUBSTR(CODCUENTARCC,4,7) IN
('5041923','5041924','5041925','6041923','6041924','6041925'))
THEN 'Mivi'
WHEN TIPCREDITO='13'
THEN 'Hip'
WHEN TIPCREDITO IN ('11','12') and SUBSTR(CODCUENTARCC,1,2)='14'
AND SUBSTR(CODCUENTARCC,4,7) in
('1030604','1030605','1030606','1030611','1030612',
'4030604','4030605','4030606','4030611','4030612','5030604','5030605','5030606','50
30611','5030612', '6030604','6030605','6030606','6030611','6030612')
THEN 'Conv'
ELSE 'Rest'
END AS CARTERA,
CASE WHEN SUBSTR(CODCUENTARCC,1,2)='72' AND SUBSTR(CODCUENTARCC,4,3) IN
('506')
AND TIPCREDITO in ('11','12') THEN MTOSALDO ELSE 0 END AS LINEA,
CASE WHEN LINEA = 0 THEN MTOSALDO ELSE 0 END AS MTOSALDO2
FROM E_DM_CR_SCORING.lcl_maesaldorcc
where codmes >='201811' and codmes<='201911'
and codempresa in
('00001','00006','00004','00002','00055','00022','00142','00082','00073','00145','0
0072','00129')
and (
(substr(codcuentarcc,1,2)='14' and substr(codcuentarcc,4,1) in
('1','3','4','5','6')
and tipcredito in ('11','12','13')) or
(substr(codcuentarcc,1,2)='72' and substr(codcuentarcc,4,3) in ('506')
and tipcredito in ('11','12')) )
) WITH DATA
PRIMARY INDEX (CONCATENADO)
ON COMMIT PRESERVE ROWS
/
*----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
------------------------------------------------------------*/

CREATE SET VOLATILE TABLE TMP_JONA_FINAL


(
CONCATENADO,
CODMES,
CODSBS,
CODEMPRESA,
CARTERA,
MTOSALDO,
LINEA,
DIAS,
REFREE2,
FILDIAS,
FILREFCLI
)
AS
(
SELECT
T.CONCATENADO,
T.CODMES,
T.CODSBS,
T.CODEMPRESA,
T.CARTERA,
T.MTOSALDO,
T.LINEA,
S.DIAS,
R.REFREE2,
CASE WHEN DIAS>90 THEN 1 ELSE 0 END AS FILDIAS,
CASE WHEN REFREE2>0 THEN 1 ELSE 0 END AS FILREFCLI
FROM
(
select concatenado, codmes, codsbs, codempresa, cartera, sum(mtosaldo2) as
mtosaldo, sum(linea) as linea
from TMP_JONA_1 A
group by concatenado, codmes, codsbs, codempresa, cartera
) T
LEFT JOIN
(
select concatenado, codmes, codsbs, codempresa, cartera, max(CODCONDICION) as DIAS
from TMP_JONA_1
where substr(codcuentarcc,1,2)='14' and substr(codcuentarcc,4,1) in
('1','3','4','5','6')
group by concatenado, codmes, codsbs, codempresa, cartera
) S ON T.CODSBS = S.CODSBS AND T.CODMES=S.CODMES AND T.CODEMPRESA=S.CODEMPRESA AND
T.CARTERA=S.CARTERA
LEFT JOIN
(
select concatenado, codmes, codsbs, codempresa, sum(mtosaldo2) as REFREE2
from TMP_JONA_1
where substr(codcuentarcc,1,2)='14' and
(
substr(codcuentarcc,4,1) in ('3','4') or substr(codcuentarcc,4,7) in
('5031902','6031902')
or substr(codcuentarcc,4,7) in
('5041923','5041924','5041925','6041923','6041924','6041925')
)
group by concatenado, codmes, codsbs, codempresa
) R ON T.CODSBS = R.CODSBS AND T.CODMES=R.CODMES AND T.CODEMPRESA=R.CODEMPRESA
)WITH DATA
PRIMARY INDEX (CONCATENADO)
ON COMMIT PRESERVE ROWS

/*---------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-------------------------------------------------------------*/

CREATE SET VOLATILE TABLE TMP_JONA_FINAL_PD AS


(

SELECT A.*,
CASE WHEN (
A_1.CONCATENADO IS NOT NULL OR A_2.CONCATENADO IS NOT NULL OR
A_3.CONCATENADO IS NOT NULL OR A_4.CONCATENADO IS NOT NULL OR A_5.CONCATENADO IS
NOT NULL OR A_6.CONCATENADO IS NOT NULL
OR A_7.CONCATENADO IS NOT NULL OR A_8.CONCATENADO IS NOT NULL
OR A_9.CONCATENADO IS NOT NULL OR A_10.CONCATENADO IS NOT NULL OR
A_11.CONCATENADO IS NOT NULL OR A_12.CONCATENADO IS NOT NULL
) THEN 1 ELSE 0 END AS FLAG_12_MESES

FROM TMP_JONA_FINAL A

LEFT JOIN TMP_JONA_FINAL A_1


ON A.CONCATENADO = A_1.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),1),'YYYYMM') = A_1.CODMES AND A_1.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_2
ON A.CONCATENADO = A_2.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),2),'YYYYMM') = A_2.CODMES AND A_2.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_3
ON A.CONCATENADO = A_3.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),3),'YYYYMM') = A_3.CODMES AND A_3.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_4
ON A.CONCATENADO = A_4.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),4),'YYYYMM') = A_4.CODMES AND A_4.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_5
ON A.CONCATENADO = A_5.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),5),'YYYYMM') = A_5.CODMES AND A_5.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_6
ON A.CONCATENADO = A_6.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),6),'YYYYMM') = A_6.CODMES AND A_6.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_7
ON A.CONCATENADO = A_7.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),7),'YYYYMM') = A_7.CODMES AND A_7.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_8
ON A.CONCATENADO = A_8.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),8),'YYYYMM') = A_8.CODMES AND A_8.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_9
ON A.CONCATENADO = A_9.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),9),'YYYYMM') = A_9.CODMES AND A_9.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_10
ON A.CONCATENADO = A_10.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),10),'YYYYMM') = A_10.CODMES AND A_10.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_11
ON A.CONCATENADO = A_11.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),11),'YYYYMM') = A_11.CODMES AND A_11.FILDIAS=1
LEFT JOIN TMP_JONA_FINAL A_12
ON A.CONCATENADO = A_12.CONCATENADO
AND TO_CHAR(ADD_MONTHS( to_date(CAST(A.CODMES AS
VARCHAR(6)),'YYYYMM'),12),'YYYYMM') = A_12.CODMES AND A_12.FILDIAS=1
WHERE A.CONCATENADO IN (
SELECT A1.CONCATENADO
FROM TMP_JONA_FINAL A1
LEFT JOIN TMP_JONA_FINAL B1
ON A1.CONCATENADO=B1.CONCATENADO
AND (A1.CODMES>B1.CODMES)
WHERE B1.CODMES IS NULL AND A1.FILDIAS=0)
) WITH DATA
PRIMARY INDEX (CONCATENADO)
ON COMMIT PRESERVE ROWS

/*---------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-------------------------------------------------------------*/

CREATE SET VOLATILE TABLE TB_JM_TC_SFPD AS


(
SELECT A.*, B.RANGOSCP, C.CODDOC, C.TIPDOC FROM TMP_JONA_FINAL_PD A
LEFT JOIN
(
SELECT CODSBS,
CODMES,
RANGOSCP,
CASE WHEN (
CODMES-(TRUNC(CODMES/100))*100)=1 THEN (TRUNC(CODMES/100))*100-100+12
ELSE CODMES-1 END AS CODMES_1
FROM E_OF_MGR_SCORING.SCORE_BP_BURO
WHERE CODMES>='201811'
) B
ON A.CODSBS=B.CODSBS AND A.CODMES= B.CODMES_1
LEFT JOIN E_DM_CR_SCORING .lcl_maepersonarcc C
ON A.CODSBS=C.CODSBS
) with DATA
PRIMARY INDEX (CONCATENADO)
ON COMMIT PRESERVE ROWS
/*---------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-------------------------------------------------------------*/

CREATE SET VOLATILE TABLE TB_JM_TC_SFPD_FINAL AS


(
select
a.*,b.nom_segmento,b.nom_sub_segmento,c.nbrempresa,c.tipempresa,c.codstatusempresa
from TB_JM_TC_SFPD a
left join (
select distinct cod_tipo_documento, nro_documento, max(nom_segmento) as
nom_segmento, max(nom_sub_segmento) as nom_sub_segmento
from E_DW_VIEWS.V_FCT_SEGMENTO_MERCADO
where EXTRACT (YEAR FROM Fch_SBS) = 2018 AND EXTRACT (MONTH FROM
Fch_SBS) = 11
group by cod_tipo_documento,nro_documento
) b
on a.tipdoc=CAST(b.cod_tipo_documento AS INTEGER) and
a.coddoc=b.nro_documento
left join E_DM_CR_SCORING.LCL_CODEMPRESARCC c
ON a.codempresa = c.codempresa
) with DATA
PRIMARY INDEX (CONCATENADO)
ON COMMIT PRESERVE ROWS

SELECT TOP 100 * FROM TB_JM_TC_SFPD_FINAL

/*---------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-------------------------------------------------------------*/
/*DELETE FROM E_WA_BPE_SCORING.TB_JM_TC_FLAG_FINAL
DROP TABLE E_WA_BPE_SCORING.TB_JM_TC_FLAG_FINAL*/

INSERT INTO E_WA_BPE_SCORING.TB_JM_TC_SFPD_FINAL


SELECT CODMES, CODEMPRESA, nbrempresa, FILREFCLI, CARTERA,nom_segmento,
nom_sub_segmento, RANGOSCP,
SUM(CASE WHEN (FLAG_12_MESES=1) THEN 1 ELSE 0 END) AS MALO12,
COUNT(DISTINCT CODSBS) TOTAL
FROM TB_JM_TC_SFPD_FINAL
GROUP BY CODEMPRESA || nbrempresa || FILREFCLI || CARTERA || nom_segmento ||
nom_sub_segmento || RANGOSCP,
CODMES, CODEMPRESA, nbrempresa, FILREFCLI, CARTERA,nom_segmento,
nom_sub_segmento, RANGOSCP
/* ORDER BY CODEMPRESA || nbrempresa || FILREFCLI || CARTERA || nom_segmento ||
nom_sub_segmento || RANGOSCP,
CODEMPRESA, nbrempresa, FILREFCLI, CARTERA,nom_segmento, nom_sub_segmento,
RANGOSCP*/

SELECT CODMES, CODEMPRESA, NBREMPRESA, FILREFCLI, CARTERA, RANGOSCP, SUM(MALO12)


MALO12, SUM(TOTAL) TOTAL
FROM TB_JM_SFPD_FINAL_2
GROUP BY CODMES, CODEMPRESA, NBREMPRESA, FILREFCLI, CARTERA, RANGOSCP
WHERE CODEMPRESA=00004 AND Cartera='Conv' AND RANGOSCP=9
CREATE SET VOLATILE TABLE TB_JM_SFPD_FINAL_2 AS
(
SELECT CODMES, CODEMPRESA, nbrempresa, FILREFCLI, CARTERA,nom_segmento,
nom_sub_segmento, RANGOSCP,
SUM(CASE WHEN (FLAG_12_MESES=1) THEN 1 ELSE 0 END) AS MALO12,
COUNT(DISTINCT CODSBS) TOTAL
FROM TB_JM_TC_SFPD_FINAL
GROUP BY CODMES, CODEMPRESA, nbrempresa, FILREFCLI, CARTERA,nom_segmento,
nom_sub_segmento, RANGOSCP
)
with DATA
PRIMARY INDEX (CODMES, CODEMPRESA, NBREMPRESA, FILREFCLI, CARTERA, NOM_SEGMENTO,
NOM_SUB_SEGMENTO)
ON COMMIT PRESERVE ROWS

SELECT top 100 * FROM TB_JM_SFPD_FINAL_2


WHERE CODMES=201911 AND CODEMPRESA=00004 AND Cartera='Conv' AND
nom_segmento='Select' AND nom_sub_segmento='SV' AND RANGOSCP=9

You might also like