Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as SQL by registered user vvillacorta ( 10 months 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

 

Revise this Paste

Your Name: Code Language: