Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so dont bother with any of their useless mail servers here and just use oauth login instead. Thank the nice Russians for causing that. :)

Paste

Pasted as SQL by registered user vvillacorta ( 4 years ago )
SELECT XX.CODDOC, 
       CASE WHEN (XX.NUM_RUC = '.' OR XX.NUM_RUC LIKE '' OR XX.NUM_RUC IS NULL) AND XX.NUM_DOC LIKE '10%' AND LEN(XX.NUM_DOC) = 11 THEN XX.NUM_DOC ELSE XX.NUM_RUC END NUM_RUC, 
	   XX.TELEFONO,
       MAX(FLG_CRUCE_RUC) FLG_CRUCE_RUC, 
	   MAX(FLG_CRUCE_NUMDOC) FLG_CRUCE_NUMDOC, 
	   MAX(FLG_CRUCE_RUC_CODDOC) FLG_CRUCE_RUC_CODDOC, 
	   MAX(FLG_CRUCE_NUMDOC_CODDOC) FLG_CRUCE_NUMDOC_CODDOC, 
	   MAX(FLG_CRUCE_RUC_RUC_CONTACTO) FLG_CRUCE_RUC_RUC_CONTACTO, 
	   MAX(FLG_CRUCE_NUMDOC_RUC_CONTACTO) FLG_CRUCE_NUMDOC_RUC_CONTACTO, 
	   MAX(FLG_RRLL) FLG_RRLL, 
	   MAX(CASE WHEN ODEN_PRIORIDAD = 1 THEN N_FUENTE ELSE NULL END) N_FUENTE,
	   MAX(CASE WHEN ODEN_PRIORIDAD = 1 THEN DESCRIPCION ELSE NULL END) DESCRIPCION,
	   MAX(CASE WHEN ODEN_PRIORIDAD = 1 THEN PRIORIDAD_TELEFONO ELSE NULL END) PRIORIDAD_TELEFONO
FROM (
	SELECT ZZ.*,
		   FF.FUENTE N_FUENTE, FF.DESCRIPCION, FF.TIPO,  FF.PRIORIDAD_TELEFONO,
		   ROW_NUMBER() OVER (PARTITION BY ZZ.CODDOC, ZZ.NUM_RUC, ZZ.TELEFONO
									ORDER BY FF.PRIORIDAD_TELEFONO ASC,
									         ZZ.NUM_DOC DESC
							  ) AS ODEN_PRIORIDAD
	FROM (
		SELECT AA.CODDOC, AA.NUM_DOC, AA.NUM_RUC, BB.TELEFONO, BB.FUENTE,
			   1 FLG_CRUCE_RUC, 0 FLG_CRUCE_NUMDOC, 0 FLG_CRUCE_RUC_CODDOC, 0 FLG_CRUCE_NUMDOC_CODDOC, 0 FLG_CRUCE_RUC_RUC_CONTACTO, 0 FLG_CRUCE_NUMDOC_RUC_CONTACTO, 0 FLG_RRLL
		FROM ODS.MM_GESCOM_UNIVERSO_MERCADO_TOTAL_BPE AA
		INNER JOIN ODS.MD_CNTC_TELEFONOS BB
		ON AA.NUM_RUC = BB.NUM_RUC AND AA.NUM_RUC ! ='.'
		UNION
		SELECT AA.CODDOC, AA.NUM_DOC, AA.NUM_RUC, BB.TELEFONO, BB.FUENTE,
			   0 FLG_CRUCE_RUC, 1 FLG_CRUCE_NUMDOC, 0 FLG_CRUCE_RUC_CODDOC, 0 FLG_CRUCE_NUMDOC_CODDOC, 0 FLG_CRUCE_RUC_RUC_CONTACTO, 0 FLG_CRUCE_NUMDOC_RUC_CONTACTO, 0 FLG_RRLL
		FROM ODS.MM_GESCOM_UNIVERSO_MERCADO_TOTAL_BPE AA
		INNER JOIN ODS.MD_CNTC_TELEFONOS BB
		ON AA.NUM_DOC = BB.NUM_DOC AND AA.NUM_DOC ! ='.'
		UNION
		SELECT AA.CODDOC, AA.NUM_DOC, AA.NUM_RUC, BB.TELEFONO, BB.FUENTE,
			   0 FLG_CRUCE_RUC, 0 FLG_CRUCE_NUMDOC, 1 FLG_CRUCE_RUC_CODDOC, 0 FLG_CRUCE_NUMDOC_CODDOC, 0 FLG_CRUCE_RUC_RUC_CONTACTO, 0 FLG_CRUCE_NUMDOC_RUC_CONTACTO, 0 FLG_RRLL
		FROM ODS.MM_GESCOM_UNIVERSO_MERCADO_TOTAL_BPE AA
		INNER JOIN ODS.MD_CNTC_TELEFONOS BB
		ON AA.NUM_RUC = BB.COD_DOC AND AA.NUM_RUC ! ='.'
		UNION
		SELECT AA.CODDOC, AA.NUM_DOC, AA.NUM_RUC, BB.TELEFONO, BB.FUENTE,
			   0 FLG_CRUCE_RUC, 0 FLG_CRUCE_NUMDOC, 0 FLG_CRUCE_RUC_CODDOC, 1 FLG_CRUCE_NUMDOC_CODDOC, 0 FLG_CRUCE_RUC_RUC_CONTACTO, 0 FLG_CRUCE_NUMDOC_RUC_CONTACTO, 0 FLG_RRLL
		FROM ODS.MM_GESCOM_UNIVERSO_MERCADO_TOTAL_BPE AA
		INNER JOIN ODS.MD_CNTC_TELEFONOS BB
		ON AA.NUM_DOC = BB.COD_DOC AND AA.NUM_DOC ! ='.'
		UNION
		SELECT BB.COD_DOC_CONTACTO CODDOC, BB.NUM_DOC_CONTACTO NUM_DOC, BB.NUM_RUC_CONTACTO NUM_RUC, BB.TELEFONO, BB.FUENTE,
			   0 FLG_CRUCE_RUC, 0 FLG_CRUCE_NUMDOC, 0 FLG_CRUCE_RUC_CODDOC, 0 FLG_CRUCE_NUMDOC_CODDOC, 1 FLG_CRUCE_RUC_RUC_CONTACTO, 0 FLG_CRUCE_NUMDOC_RUC_CONTACTO, 0 FLG_RRLL
		FROM ODS.MM_GESCOM_UNIVERSO_MERCADO_TOTAL_BPE AA
		INNER JOIN ODS.MD_CNTC_TELEFONOS BB
		ON AA.NUM_RUC = BB.NUM_RUC_CONTACTO AND AA.NUM_RUC ! ='.'
		UNION
		SELECT BB.COD_DOC_CONTACTO CODDOC, BB.NUM_DOC_CONTACTO NUM_DOC, BB.NUM_RUC_CONTACTO NUM_RUC, BB.TELEFONO, BB.FUENTE,
			   0 FLG_CRUCE_RUC, 0 FLG_CRUCE_NUMDOC, 0 FLG_CRUCE_RUC_CODDOC, 0 FLG_CRUCE_NUMDOC_CODDOC, 0 FLG_CRUCE_RUC_RUC_CONTACTO, 1 FLG_CRUCE_NUMDOC_RUC_CONTACTO, 0 FLG_RRLL
		FROM ODS.MM_GESCOM_UNIVERSO_MERCADO_TOTAL_BPE AA
		INNER JOIN ODS.MD_CNTC_TELEFONOS BB
		ON AA.NUM_DOC = BB.NUM_RUC_CONTACTO AND AA.NUM_DOC ! ='.'
		UNION
		SELECT LL.NUM_DOC CODDOC, LL.NUM_DOC, LL.RUC NUM_RUC, BB.TELEFONO, BB.FUENTE,
			   0 FLG_CRUCE_RUC, 0 FLG_CRUCE_NUMDOC, 0 FLG_CRUCE_RUC_CODDOC, 0 FLG_CRUCE_NUMDOC_CODDOC, 0 FLG_CRUCE_RUC_RUC_CONTACTO, 0 FLG_CRUCE_NUMDOC_RUC_CONTACTO, 1 FLG_RRLL
		FROM ODS.MM_GESCOM_UNIVERSO_MERCADO_TOTAL_BPE AA
		INNER JOIN ODS.MM_SUNAT_REPRESENTANTE_LEGAL LL
		ON AA.NUM_RUC = LL.RUC AND LL.DESESTADO='VIGENTE'
		INNER JOIN ODS.MD_CNTC_TELEFONOS BB
		ON LL.TIPDOC = BB.TIP_DOC AND LL.NUM_DOC = BB.COD_DOC
	) ZZ
	LEFT JOIN BDS.DE_CNTC_FUENTES FF
	ON ZZ.FUENTE = FF.ID_FUENTE
) XX
GROUP BY XX.CODDOC, 
      CASE WHEN (XX.NUM_RUC = '.' OR XX.NUM_RUC LIKE '' OR XX.NUM_RUC IS NULL) AND XX.NUM_DOC LIKE '10%' AND LEN(XX.NUM_DOC) = 11 THEN XX.NUM_DOC ELSE XX.NUM_RUC END,
      XX.TELEFONO





DROP TABLE IF EXISTS d_mdl_vpc_disc.mm_base_nuevos_mes_contactabilidad
CREATE EXTERNAL TABLE d_mdl_vpc_disc.mm_base_nuevos_mes_contactabilidad
(   `CODDOC` string,
    `NUM_RUC` string,
    `TELEFONO` string,
    `FLG_CRUCE_RUC` int,
    `FLG_CRUCE_NUMDOC` int,
    `FLG_CRUCE_RUC_CODDOC` int,
    `FLG_CRUCE_NUMDOC_CODDOC` int,
    `FLG_CRUCE_RUC_RUC_CONTACTO` int,
    `FLG_CRUCE_NUMDOC_RUC_CONTACTO` int,
    `FLG_RRLL` int,
    `N_FUENTE` int,
    `DESCRIPCION` int,
    `PRIORIDAD_TELEFONO` int
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 's3://sagemaker-us-east-1-058528764918/vpc/Contacto_Efectivo/BASE_NUEVO_MES/'
TBLPROPERTIES (
    'skip.header.line.count'='1',
    'has_encrypted_data'='false'
);

 

Revise this Paste

Your Name: Code Language: