23 de septiembre de 2015

Join para Estado anterior y posterior

Si se quiere traer el estado un mes antes y un mes despues de un cliente en un periodo especifico, teniendo algo como:















Podria usarse este script:

Datos:
LOAD * INLINE [
    ID_CLIENTE, PERIODO, ESTADO
    1, 201412, ACTIVO
    1, 201501, INACATIVO
    3, 201412, ACTIVO
    3, 201412, ACTIVO
    3, 201501, ACTIVO
    3, 201502, INACATIVO]
;


Left Join (Datos)
LOAD ID_CLIENTE, ESTADO_1MES_ANTES, Year(PERIODO_TMP)*100+Month(PERIODO_TMP) AS PERIODO;
LOAD ID_CLIENTE,
AddMonths(Date#(PERIODO,'YYYYMM'),1) as PERIODO_TMP,
ESTADO AS ESTADO_1MES_ANTES
Resident Datos;

Left Join (Datos)
LOAD ID_CLIENTE, ESTADO_1MES_DESPUES, Year(PERIODO_TMP)*100+Month(PERIODO_TMP) AS PERIODO;
LOAD ID_CLIENTE,
AddMonths(Date#(PERIODO,'YYYYMM'),-1) as PERIODO_TMP,
ESTADO AS ESTADO_1MES_DESPUES
Resident Datos;





No hay comentarios: