19 de febrero de 2014

Maxima Fecha para Carga Incremental

Diferentes técnicas para obtener la máxima fecha de un qvd y asignarla a una variable para luego usar esta variable en una Carga Incremental.

1. Asignar la fecha de la última actualización del qvd a la variable UltimaFecha
LET UltimaFecha=QvdCreateTime('C:\Datos.qvd'); 


2. Crear tabla de un registro con la fecha máxima, leyendo todos los registros del campo Fecha de un qvd.
TablaFechas_tmp:
LOAD Max(Fechaas Fecha
From Data.qvd (qvd);
LET UltimaFecha=Peek('Fecha',0,'TablaFechas_tmp');


3. Cargar todos los registros del campo Fecha de un qvd y después ordena las fechas de mayor a menor en una tabla nueva nombrándola TablaFechas_tmp. Luego asigna la primera fecha de la TablaFechas_tmp a la variable UltimaFecha. 

TablaFechas:
LOAD Fecha
FROM Data.qvd (qvd);
TablaFechas_tmp:
NoConcatenate LOAD Fecha
Resident TablaFechas Order By Fecha desc;

LET UltimaFecha=Peek('Fecha',0,'TablaFechas_tmp');


4. ..
//  Carga el campo Fecha del qvd
Temporal_1:
LOAD Fecha
FROM Fact_Ventas.qvd (qvd);


// Load Precedente que carga la tabla creada
// inmediatamente después
Temporal_2:
NoConcatenate
LOAD MaxString(Fecha) as UltimaFecha;

// Crea tabla de un registro con la Fecha Máxima, 
// leyendo los campos Fecha cargados previamente
LOAD fieldvalue('Fecha',iterno()) as Fecha AUTOGENERATE
WHILE not IsNull(fieldvalue('Fecha',iterno()));
// Asigna a la variable vUltimaFecha el valor 
// del campo UltimaFecha de la tabla Temporal_2
let vUltimaFecha = FieldValue('UltimaFecha',1);

//Borra tablas
DROP Table Temporal_1, Temporal_2; 


Referencias:
1. http://www.learnqlickview.com/qlikview-tutorial-a-how-to-tip-on-data-load/
2. http://qlikviewnotes.blogspot.com.ar/2013/09/fastest-methd-to-read-maxfield-from-qvd.html
3. http://qlikviewnotes.blogspot.com.ar/2013/08/super-fast-method-to-retrieve-qvd-high.html
4. http://www.qlikcommunity.com/thread/35463
5. http://qlikviewmaven.blogspot.com.ar/2009/06/quick-load-of-max-field-value.html

1 comentario:

Unknown dijo...

Hola, me gustaría por favor me indicaras como puedo realizar un conteo de fechas hacia atrás. Ejemplo:contar 6 meses hacia atrás y me arroje un resultado.