IntervalMatch (Sintaxis ampliada)

El prefijo ampliado IntervalMatch se utiliza para crear una tabla que hace correspondencias de valores numéricos discretos a uno o más intervalos numéricos, y al mismo tiempo enlaza los valores de una o más claves adicionales.

Ésta es una funcionalidad muy potente y flexible, que puede utilizarse para enlazar transacciones con dimensiones que cambien en el tiempo: dimensiones de cambio lento.

El prefijo IntervalMatch debe colocarse antes de una sentencia Load o Select que carga los intervalos. La tabla que contiene los puntos de datos discretos y las claves adicionales debe haber sido cargada de antemano en QlikView, antes de insertar la sentencia con el prefijo IntervalMatch. El prefijo transforma la tabla cargada de intervalos y claves en una tabla que contiene una columna adicional: los puntos de datos numéricos discretos. También amplía el número de registros de forma que la nueva tabla contiene un registro por combinación posible de puntos de datos discretos, intervalo y valor del campo(s) clave.

La sintaxis es la siguiente:

intervalmatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )

matchfield es el campo que contiene los valores numéricos discretos que se van a enlazar con los intervalos.

keyfield(s) son campos que contienen los atributos adicionales que se van a comparar en la transformación.

loadstatement o selectstatement debe dar como resultado una tabla donde los dos primeros campos contengan los límites inferior y superior de cada intervalo y el tercero y cualquiera de los campos subsiguientes contienen los campos clave keyfield(s) presentes en la sentencia IntervalMatch. Los intervalos están siempre cerrados, es decir, los puntos finales están incluidos en el intervalo. En caso de tener límites no numéricos, no se considera el intervalo (se descarta como indefinido).

Para evitar que los límites indefinidos se descarten, es necesario permitir a los valores nulos mapear (hacer correspondencias a) los campos que constituyen los límites superior o inferior del intervalo. Esto se hace mediante la sentencia NullAsValue o mediante un test explícito que reemplaza los valores NULOS por un valor numérico antes o después de cualquiera de los puntos de datos numéricos discretos.

Ejemplo:  

Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;