SELECT a.*, b.*,
e.COD_UNICO,
e.DES_TRANSAC_GRUPO_N2,
e.DES_TRANSAC_GRUPO_N3,
e.SERVICIOS,
e.Monto_Cash_in,
e.Monto_Cash_out,
e.cant_cash_in,
e.cant_cash_out,
e.fecha_1er_trx,
e.fecha_ult_trx
FROM (
select y.*,
CODIGO_UNICO Codigo_Unico_final ,
CASE WHEN SELECCIONADO_GAT = 'servicios' then 'bucket_pago_servicios'
WHEN SELECCIONADO_GAT = 'trading' then 'bucket_trading'
WHEN SELECCIONADO_GAT = 'planillas' then 'bucket_pago_planillas'
WHEN SELECCIONADO_GAT = 'sunat_nps' then 'bucket_pago_servicios_nps'
else '-' end bucket_corregido
FROM t_jv_model_gat y
WHERE MODELO = 'GATILLADOR'
AND SELECCIONADO_GAT IS NOT NULL
and PERIODO_CAMPANIA = '{periodo}'
) a
LEFT JOIN (
SELECT
P.COD_UNICOCLIENTE,
P.CANT_G,
P.CANT_CE,
P.CANT_AC,
P.CANT_LEADS,
CASE
WHEN COD_MES = 202310 THEN 202309
WHEN COD_MES = 202311 THEN 202310
WHEN COD_MES = 202312 THEN 202311
WHEN COD_MES = 202401 THEN 202312
WHEN COD_MES = 202402 THEN 202401
WHEN COD_MES = 202403 THEN 202402
WHEN COD_MES = 202404 THEN 202403
WHEN COD_MES = 202405 THEN 202404
END AS PERIODO_MODEL,
COD_MES AS PERIODO_CAMPANIA
FROM ODS.HD_NBARRIDO_GESTION_ININ_VTA_BPE P
WHERE COD_MES = '{periodo}'
AND TIPO_CARGA IN ('CARTERIZACION TLV','ONBOARDRING TLV B')
) b
ON a.Codigo_Unico_final = b.COD_UNICOCLIENTE
AND a.PERIODO = b.PERIODO_MODEL
LEFT JOIN (
SELECT CASE
WHEN PERIODO_INFORMACION = 202310 THEN 202309
WHEN PERIODO_INFORMACION = 202311 THEN 202310
WHEN PERIODO_INFORMACION = 202312 THEN 202311
WHEN PERIODO_INFORMACION = 202401 THEN 202312
WHEN PERIODO_INFORMACION = 202402 THEN 202401
WHEN PERIODO_INFORMACION = 202403 THEN 202402
WHEN PERIODO_INFORMACION = 202404 THEN 202403
END AS PERIODO_CAMPANIA,
COD_UNICO,
DES_TRANSAC_GRUPO_N3,
DES_TRANSAC_GRUPO_N2,
DES_TRANSAC_GRUPO_N1,
SERVICIOS,
sum(case when (SIGNO_MONTO = '+') and (DES_MON_ORIG = 'DOLARES') then MONTO_TRANSAC*3.4
when (SIGNO_MONTO = '+') and (DES_MON_ORIG = 'SOLES') then MONTO_TRANSAC
else 0 end) Monto_Cash_in,
sum(case when (SIGNO_MONTO = '-') and (DES_MON_ORIG = 'DOLARES') then MONTO_TRANSAC*3.4
when (SIGNO_MONTO = '-') and (DES_MON_ORIG = 'SOLES') then MONTO_TRANSAC
else 0 end) Monto_Cash_out,
sum(case when SIGNO_MONTO = '+' then 1 else 0 end) cant_cash_in,
sum(case when SIGNO_MONTO = '-' then 1 else 0 end) cant_cash_out,
min(FECHA_INFORMACION) fecha_1er_trx,
max(FECHA_INFORMACION) fecha_ult_trx
FROM (
SELECT
PERIODO_INFORMACION,
COD_UNICO,
DES_TRANSAC_GRUPO_N3,
DES_TRANSAC_GRUPO_N2,
DES_TRANSAC_GRUPO_N1,
CASE
WHEN DES_TRANSAC_GRUPO_N2 = 'PAGO DE SERVICIOS' AND DES_TRANSAC_GRUPO_N3 = 'PAGO DE SERVICIOS' THEN 'bucket_pago_servicios'
WHEN DES_TRANSAC_GRUPO_N1 = 'PAGOS MASIVOS' AND
DES_TRANSAC_GRUPO_N2 = 'PLANILLAS' AND
DES_TRANSAC_GRUPO_N3 = 'PLANILLAS' THEN 'bucket_pago_planillas'
WHEN DES_TRANSAC_GRUPO_N2 = 'PAGO SUNAT' AND DES_TRANSAC_GRUPO_N3 = 'NPS' THEN 'bucket_pago_servicios_nps'
ELSE NULL -- Cambiado a NULL
END AS SERVICIOS,
SIGNO_MONTO,
MONTO_TRANSAC,
DES_MON_ORIG,
FECHA_INFORMACION
FROM ods.hd_transaccion
WHERE
FECHA_INFORMACION LIKE ('{periodo}%')
AND COD_UNICO IN (
SELECT DISTINCT CODUNICOCLI
FROM ODS.HD_BASE_STOCK_CN
WHERE
CARTERA = 'NEGOCIO'
AND BANCA = 'BPE'
AND CODMES = '{periodo}'
)
AND DES_TRANSAC_GRUPO_N3 IN ('PLANILLAS','NPS','PAGO DE SERVICIOS')
UNION ALL
SELECT
'{periodo}' PERIODO_INFORMACION,
CU COD_UNICO,
'CAMBIOS' DES_TRANSAC_GRUPO_N3,
'CAMBIOS' DES_TRANSAC_GRUPO_N2,
'OPERACIONES MESA' DES_TRANSAC_GRUPO_N1,
'bucket_trading' SERVICIOS,
'-' SIGNO_MONTO,
VOL_USD * -1*3.58 MONTO_TRANSAC,
'SOLES' DES_MON_ORIG,
FECLABORAL FECHA_INFORMACION
FROM stg.t_cambios
WHERE FECLABORAL LIKE '{anio}-{mes}%') X
WHERE DES_TRANSAC_GRUPO_N1 NOT IN ('PAGOS RECIBIDOS')
GROUP BY PERIODO_INFORMACION,
COD_UNICO,
DES_TRANSAC_GRUPO_N3,
DES_TRANSAC_GRUPO_N2,
DES_TRANSAC_GRUPO_N1,
SERVICIOS
) e
ON a.Codigo_Unico_final = e.COD_UNICO
AND a.bucket_corregido = e.SERVICIOS
AND a.PERIODO = e.PERIODO_CAMPANIA;
Add a code snippet to your website: www.paste.org