Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
alejortizp
Contributor III
Contributor III

Join por un rango de fechas y un ID

Hola,

Estoy tratando de hacer un join con intervalmatch para traer un contrato por fecha de prestación para el primer cruce, y luego de haber cruzado en el segundo cruce dado que tengo la fecha inicial del contrato en mi nueva pues atrazo esta fecha para buscar el contrato anterior con la misma IPS y servicio. Pero en los cruces se me esta duplicando el numero de registros, y eso no es lo que quiero.

[La_33]:
LOAD
NIT_IPS&'-'&COD_SERVICIO&'-'&TIPO_CONTRATO AS LLAVE1,
NIT_IPS&'-'&COD_SERVICIO&'-'&TIPO_CONTRATO AS LLAVE2,
NUM_FACTURA,
NUM_RADICA,
ESTADO_RADICA,
ITEM,
TIPO_DOC,
DOC_AFILIADO,
TIPO_DOC&'-'&DOC_AFILIADO AS DOCUMENTO,
COD_SEXO,
EDAD,
DIAGNOSTICO,
DESCR_DIAGNOSTICO,
DIA_RADICACION,
MES_RADICACION,
ANIO_RADICACION,
DIA_RADICACION&'/'&MES_RADICACION&'/'&ANIO_RADICACION as Fecha_Radicacion,
DIA_CONTABLE,
MES_CONTABLE,
ANIO_CONTABLE,
DIA_CONTABLE&'/'&MES_CONTABLE&'/'&ANIO_CONTABLE as Fecha_Contable,
DIA_PRESTACION,
MES_PRESTACION,
ANIO_PRESTACION,
// ANIO_PRESTACION as PERIODO_TARIFA,
DIA_PRESTACION&'/'&MES_PRESTACION&'/'&ANIO_PRESTACION as Fecha_Prestacion,
CCONTABLE,
DESC_CONCEPTO_CONTABLE,
VALOR_COBRADOIPS,
VALOR_APAGAR,
CANTIDAD,
VALOR_APAGAR/CANTIDAD as VALOR_UNITARIO,
RAZON_SOCIAL,
NIT_IPS AS NIT_IPS_INTEGRACION,
MUNICIPIO_AFI,
if(MUNICIPIO_AFI = 'MEDELLIN','MEDELLIN','RESTO') as Dist.Mun.AFI,
DEPARTAMENTO_AFI,
REGION_AFI,
MUNICIPIO_IPS,
if(MUNICIPIO_IPS='MEDELLIN','MEDELLIN','RESTO') as Dist.Mun.IPS,
DEPARTAMENTO_IPS,
REGION_IPS,
COD_SERVICIO AS C_SERVICIO,
if(index(COD_SERVICIO, '-', 1) > 0,
left(COD_SERVICIO,
index(COD_SERVICIO, '-', 1) - 1), COD_SERVICIO) as COD_SERVICIO_SIN_GUION,
COD_GRUPO,
COD_SUBGRUPO,
DESCR_SERVICIO,
COD_PATOLOGIA,
DESC_PATOLOGIA,
TIPO_CONTRATO AS TIPO_CONTRATO_33
// , TRIM(TIPO_CONTRATO) AS TIPO_CONTRATO_ANTIGUO,
// COD_SERVICIO as COD_SERVICIO_CONTRATO_ANTIGUO,
// NIT_IPS AS NIT_IPS_CONTRATO_ANTIGUO
FROM [lib://qvdsalud (integrasavia_svcqlik)/Contabilizacion_Contable.qvd]
(qvd);

NoConcatenate

[La_33_integracions]:
Load
LLAVE1,
LLAVE2,
NUM_FACTURA,
NUM_RADICA,
ESTADO_RADICA,
ITEM,
TIPO_DOC,
DOC_AFILIADO,
DOCUMENTO,
COD_SEXO,
EDAD,
DIAGNOSTICO,
DESCR_DIAGNOSTICO,
DIA_RADICACION,
MES_RADICACION,
ANIO_RADICACION,
DIA_CONTABLE,
MES_CONTABLE,
ANIO_CONTABLE,
DIA_PRESTACION,
MES_PRESTACION,
ANIO_PRESTACION,
CCONTABLE,
DESC_CONCEPTO_CONTABLE,
VALOR_COBRADOIPS,
VALOR_APAGAR,
CANTIDAD,
VALOR_APAGAR/CANTIDAD as VALOR_UNITARIO,
RAZON_SOCIAL,
NIT_IPS_INTEGRACION,
MUNICIPIO_AFI,
DATE(Date#(Fecha_Prestacion,'DD/MM/YYYY')) AS Fecha_Prestacion,
DATE(Date#(Fecha_Radicacion,'DD/MM/YYYY')) AS Fecha_Radicacion,
DATE(Date#(Fecha_Contable,'DD/MM/YYYY')) AS Fecha_Contable,
Dist.Mun.AFI,
DEPARTAMENTO_AFI,
REGION_AFI,
MUNICIPIO_IPS,
Dist.Mun.IPS,
DEPARTAMENTO_IPS,
REGION_IPS,
C_SERVICIO,
COD_SERVICIO_SIN_GUION,
COD_GRUPO,
COD_SUBGRUPO,
DESCR_SERVICIO,
COD_PATOLOGIA,
DESC_PATOLOGIA,
TIPO_CONTRATO_33
Resident La_33
Where ANIO_PRESTACION>2017 and (NIT_IPS_INTEGRACION='900625317' or NIT_IPS_INTEGRACION='890904646' or NIT_IPS_INTEGRACION='800058016');
Drop Table La_33;

CONTRATOS:
LOAD
NIT_IPS&'-'&COD_SERVICIO&'-'&IF(MODELO_CONTRATA='EVENTO','E','OTROS') AS LLAVE1,
COD_SERVICIO,
COD_SUBGRUPO as SUBGRUPO,
COD_GRUPO AS GRUPO,
DESCR_SERVICIO AS DESC_SERVICIO,
ESTADO_CONTRATO,
CONTRATO_ENTIDAD,
CONTRATO_LEGAL,
NIVEL_COMPLEJIDAD,
MODELO_CONTRATA,
IF(trim(MODELO_CONTRATA)='EVENTO','E','OTROS') AS TIPO_CONTRATO,
DATE(Date#(FECHAINICIO,'DD/MM/YYYY')) AS FECHAINICIO,
DATE(Date#(FECHAFINAL,'DD/MM/YYYY')) AS FECHAFINAL,
AddMonths(DATE(Date#(FECHAINICIO,'DD/MM/YYYY')),-1) AS FECHAINICIO_ANTERIOR,
PERIODO_TARIFA,
VALOR_CONTRATO,
COSTO_MAYOR,
COSTO_MENOR,
PVP,
PORC_VAR,
INCLUYE,
MANUAL_TARIFARIO,
VALOR_FINAL_SERVICIO,
TIPO_DE_CONTRATO,
NIT_IPS ,
RAZON_SOCIAL AS RAZON_SOCIAL_CONTRATOS,
NOMBRE_SEDE
FROM [lib://qvdsalud (integrasavia_svcqlik)/Contratos.Qvd]
(qvd);

// NoConcatenate //prueba

Left Join (La_33_integracions)

// IntervalMatch(Fecha_Prestacion, NIT_IPS,COD_SERVICIO,TIPO_CONTRATO)
IntervalMatch(Fecha_Prestacion,LLAVE1)

LOAD FECHAINICIO,

FECHAFINAL,

LLAVE1

// NIT_IPS,
// COD_SERVICIO
// , TIPO_CONTRATO
// , COD_GRUPO
// , COD_SUBGRUPO

Resident CONTRATOS;

// NoConcatenate //prueba

Left Join (La_33_integracions)

LOAD *

Resident CONTRATOS;

DROP Table CONTRATOS;

// NoConcatenate

// La_33_join:
// load *,
// VALOR_FINAL_SERVICIO/CANTIDAD AS VALOR_UNITARIO_CONTRATADO,
// // if(IsNull(VALOR_FINAL_SERVICIO)='-','No esta Contratado','Esta Contratado') as SERVICIO_CONTRATADO,
// If(len(trim(VALOR_FINAL_SERVICIO))= 0 or VALOR_FINAL_SERVICIO='NULL' or VALOR_FINAL_SERVICIO='-', Null(), 'Esta Contratado' ) as SERVICIO_CONTRATADO
// Resident La_33_integracions;
// DROP Table La_33_integracions;

// NoConcatenate

CONTRATOS_antiguos:
LOAD
NIT_IPS&'-'&COD_SERVICIO&'-'&IF(MODELO_CONTRATA='EVENTO','E','OTROS') AS LLAVE2,
COD_SERVICIO as COD_SERVICIO_CONTRATO_ANTIGUO,
// COD_SUBGRUPO as SUBGRUPO,
// COD_GRUPO AS GRUPO,
// DESCR_SERVICIO AS DESC_SERVICIO,
// ESTADO_CONTRATO,
// CONTRATO_ENTIDAD,
CONTRATO_LEGAL as CONTRATO_LEGAL_ANTIGUO,
// NIVEL_COMPLEJIDAD,
// MODELO_CONTRATA,
IF(trim(MODELO_CONTRATA)='EVENTO','E','OTROS') AS TIPO_CONTRATO_ANTIGUO,
DATE(Date#(FECHAINICIO,'DD/MM/YYYY')) AS FECHAINICIO_CONTRATO_ANTIGUO,
DATE(Date#(FECHAFINAL,'DD/MM/YYYY')) AS FECHAFINAL_CONTRATO_ANTIGUO,
// PERIODO_TARIFA,
// VALOR_CONTRATO,
// COSTO_MAYOR,
// COSTO_MENOR,
// PVP,
// PORC_VAR,
// INCLUYE,
MANUAL_TARIFARIO AS MANUAL_TARIFARIO_CONTRATO_ANTIGUO,
VALOR_FINAL_SERVICIO AS VALOR_FINAL_SERVICIO_CONTRATO_ANTIGUO,
// TIPO_DE_CONTRATO,
NIT_IPS AS NIT_IPS_CONTRATO_ANTIGUO
// , RAZON_SOCIAL AS RAZON_SOCIAL_CONTRATOS,
// NOMBRE_SEDE
FROM [lib://qvdsalud (integrasavia_svcqlik)/Contratos.Qvd]
(qvd);

// NoConcatenate //prueba

Left Join (La_33_integracions)

// IntervalMatch(FECHAINICIO_ANTERIOR, NIT_IPS_CONTRATO_ANTIGUO,COD_SERVICIO_CONTRATO_ANTIGUO,TIPO_CONTRATO_ANTIGUO)
IntervalMatch(FECHAINICIO_ANTERIOR,LLAVE2)

LOAD FECHAINICIO_CONTRATO_ANTIGUO,

FECHAFINAL_CONTRATO_ANTIGUO,

LLAVE2
// NIT_IPS_CONTRATO_ANTIGUO,
// COD_SERVICIO_CONTRATO_ANTIGUO,
// TIPO_CONTRATO_ANTIGUO

Resident CONTRATOS_antiguos;

// NoConcatenate //prueba

Left Join (La_33_integracions)

LOAD *

Resident CONTRATOS_antiguos;

DROP Table CONTRATOS_antiguos;

 

0 Replies