Keep

El prefijo keep es parecido al prefijo join. Al igual que el prefijo join, compara la tabla cargada con una tabla previamente nombrada o con la última tabla de datos creada, pero en lugar de combinar la tabla cargada con una tabla anterior, tiene el efecto de reducir una o ambas tablas antes de almacenarlas en QlikView, según sea la intersección de los datos de las tablas. La comparación final equivale a aplicar un join natural entre todos los campos comunes. La diferencia está en que las dos tablas no se unen, sino que se almacenan en QlikView como dos tablas independientes de distinto nombre.

Sintaxis:  

(inner | left | right) keep [(tablename ) ]( loadstatement | selectstatement )

 

El prefijo keep debe ir siempre precedido por uno de los prefijos inner,left o right.

El prefijo explícito join en el lenguaje de script de QlikView ejecuta un full join de las dos tablas. El resultado es una sola tabla. En muchos casos los joins dan como resultado unas tablas muy grandes. Una de las principales características de QlikView es su capacidad de hacer asociaciones entre múltiples tablas en lugar de unirlas (mediante join). Esto permite ahorrar mucho espacio en la memoria e incrementar la velocidad de procesamiento, lo que se traduce en una enorme flexibilidad. Los joins explícitos deben evitarse por lo general en los scripts de QlikView. La funcionalidad keep se ha diseñado para reducir el número de casos en los que se tengan que usar joins explícitos.

Argumentos:  

Argumento Descripción
tablename Tabla designada que debe compararse con la tabla cargada.
loadstatement o selectstatement La sentencia LOAD o SELECT para la tabla cargada.

Ejemplo:  

Inner Keep LOAD * from abc.csv;

Left Keep SELECT * from table1;

tab1:

LOAD * from file1.csv;

tab2:

LOAD * from file2.csv;

.. .. ..

Left Keep (tab1) LOAD * from file3.csv;