Qlikview: The Master Calendar


Escenario

Tenemos un documento de Qlikview donde necesitamos filtrar por fechas y para queremos crear una dimensión que denominaremos master calendar.

Procedimiento

  • Incluimos en el documento el siguiente script
TRACE ***************************;
TRACE *     PROCEDIMIENTOS      *;
TRACE ***************************;
 
/**
* CREA MASTER CALENDARIO
* pCampoFecha: Campo Fecha que utilizaremos para calcular el máximo y el mínimo del master calendar
* pTablaCampoFecha: Tabla que contiene el campo [pCampoFecha]
* Basado en el Script para Master Calendar del libro Qlikview Developer 11
* https://www.packtpub.com/big-data-and-business-intelligence/qlikview-11-developers
*/
 
TRACE crear_master_calendar;
 
SUB crear_master_calendar(pCampoFecha, pTablaCampoFecha)
Temp_Calendar_Range:
LOAD 
 max($(pCampoFecha)) as MaxDate,
 min($(pCampoFecha)) as MinDate
Resident $(vTablaCampoFecha);
 
 
//Asignacion de rango a variables
LET vMinDate = Peek('Temp_Calendar_Range.MinDate', 0, 'Temp_Calendar_Range');
LET vMaxDate = Peek('Temp_Calendar_Range.MaxDate', 0, 'Temp_Calendar_Range');
 
 
 
DROP TABLE Temp_Calendar_Range;
 
master_calendar:
LOAD Distinct
 Year(Date(Temp_Date, 'DD/MM/YYYY'))*10000 + Month(Date(Temp_Date, 'DD/MM/YYYY'))*100 + Day(Date(Temp_Date, 'DD/MM/YYYY')) AS calendario_ID,
 Date(Temp_Date, 'DD/MM/YYYY') as [Fecha],
 Year(Temp_Date) as [Año],
 Month(Temp_Date) as [Mes]
;
LOAD DISTINCT
 DayStart($(vMinDate) + IterNo() - 1) as Temp_Date
AutoGenerate(1)
WHILE $(vMinDate) + IterNo() -1 <= $(vMaxDate);
 
 
LET vMaxDate = null();
LET vMinDate = null();
 
END SUB;
 
TRACE;


Enlaces de Interés

Para más información visitar el siguiente:

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s