IntervalMatch (syntaxe étendue)

Le préfixe IntervalMatch étendu permet de créer une table faisant correspondre des valeurs numériques discrètes avec un ou plusieurs intervalles numériques tout en correspondant simultanément aux valeurs d'une ou de plusieurs clés supplémentaires.

Cette fonction, extrêmement puissante et flexible, peut s'employer pour la liaison de transactions dont les dimensions changent en fonction du temps : les dimensions changeant progressivement.

Le préfixe IntervalMatch doit être placé avant une instruction Load ou Select qui charge les intervalles. La table contenant les points de données discrètes et les clés supplémentaires doit déjà avoir été chargée dans QlikView avant l'instruction contenant le préfixe IntervalMatch. Le préfixe transforme la table d'intervalles et de clés chargée dans une table contenant une colonne supplémentaire : les points de données numériques discrètes. Il étend par ailleurs le nombre d'enregistrements de sorte que la nouvelle table contienne un enregistrement par combinaison possible de points de données discrètes, d'intervalle et de valeur du ou des champs clés.

La syntaxe est la suivante :

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

matchfield est le champ contenant les valeurs numériques discrètes à lier aux intervalles.

keyfield(s) sont les champs contenant les attributs supplémentaires auxquels les points doivent correspondre dans la transformation.

loadstatement ou selectstatement doit produire une table dont les deux premiers champs contiennent les limites inférieure et supérieure de chaque intervalle, tandis que le troisième champ et les suivants contiennent les champs clés (keyfield(s)) indiqués dans l'instruction IntervalMatch. Les intervalles sont toujours fermés, c'est-à-dire que les points de fin sont inclus dans l'intervalle. Les limites non numériques génèrent l'intervalle à ignorer (limites non définies).

Afin d'éviter la non-prise en compte des limites d'intervalle non définies, il peut s'avérer nécessaire d'autoriser le mappage des valeurs NULL à d'autres champs qui constituent les limites inférieure et supérieure de l'intervalle. Cette opération peut être gérée par l'instruction NullAsValue ou par un test explicite qui remplace les valeurs NULL par une valeur numérique bien avant ou après les points de données numériques discrètes.

Exemple :  

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