QlikWorld 2020 Global Conference. Join us to discover how to get the most from your data. Act fast. Register now and save.

precedente LOAD

La función LOAD precedente permite cargar una tabla en una sola pasada mientras se conserva la posibilidad de definir varias transformaciones sucesivas. Básicamente, es una sentencia LOAD que carga desde la sentencia LOAD o SELECT a continuación, sin especificar un cualificador de origen como From o Resident, tal como se usaría normalmente. Puede apilar cualquier número de sentencias LOAD de esta manera. En primer lugar se evaluará la sentencia final, luego la sentencia superior, etc., hasta que se haya evaluado la sentencia del principio.

Se puede obtener el mismo resultado con Resident, pero en la mayoría de casos una LOAD precedente será más rápida.

Otra ventaja de la load precedente es que se puede mantener un cálculo en un sitio y reutilizarlo en las sentencias LOAD situadas encima.

Nota: Los prefijos siguientes no se pueden utilizar junto con LOAD precedente:Join, Crosstable e Intervalmatch.

Example 1: Transformar los datos cargados por una sentencia SELECT

Si se cargan los datos de una base de datos mediante una sentencia SELECT, no se podrán usar las funciones de QlikView para interpretar los datos de esa sentencia SELECT. La solución es añadir una sentencia LOAD, en la que realizar la transformación de los datos, encima de la sentencia SELECT.

En este ejemplo se interpreta una fecha almacenada en forma de cadena mediante la función Date# de QlikView en una sentencia LOAD, con la sentencia SELECT anterior como fuente.

LOAD Date#(OrderDate,’YYYYMMDD’) as OrderDate;
SQL SELECT OrderDate FROM … ;

Example 2: Simplificar el script mediante la reutilización de cálculos

En este ejemplo se usa un cálculo más de una vez en el script:

LOAD ..., Age( FromDate + IterNo() – 1, BirthDate ) as Age, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;

Mediante la introducción del cálculo en una primera pasada, podemos reutilizarlo en la función Age en un LOAD precedente:

LOAD ..., ReferenceDate, Age( ReferenceDate, BirthDate ) as Age; LOAD *, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;