IntervalMatch
Le préfixe IntervalMatch permet de créer une table faisant correspondre des valeurs numériques discrètes à un ou plusieurs intervalles numériques et, de manière facultative, faisant correspondre les valeurs d'une ou de plusieurs clés supplémentaires.
IntervalMatch (matchfield)(loadstatement | selectstatement )
IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
Le préfixe IntervalMatch doit être placé avant une instruction LOAD ou SELECT qui charge les intervalles. Le champ contenant les points de données discrètes (Time dans l'exemple ci-dessous) et les clés supplémentaires doit déjà avoir été chargé dans Qlik Sense avant l'instruction contenant le préfixe IntervalMatch. Le préfixe ne lit pas lui-même ce champ à partir de la table de la base de données. 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.
Les intervalles peuvent se superposer et les valeurs discrètes sont alors liées à tous les intervalles correspondants.
Lorsque le préfixe IntervalMatch est étendu à l'aide de champs clés, il permet de créer une table faisant correspondre des valeurs numériques discrètes à un ou plusieurs intervalles numériques tout en correspondant simultanément aux valeurs d'une ou de plusieurs clés supplémentaires.
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.
Argument | Description |
---|---|
matchfield | Champ contenant les valeurs numériques discrètes à lier aux intervalles. |
keyfield | Champs contenant les attributs supplémentaires auxquels les points doivent correspondre dans la transformation. |
loadstatementorselectstatement | Doit produire une table dont les deux premiers champs contiennent respectivement les limites inférieure et supérieure de chaque intervalle et, en cas d'utilisation de la correspondance de clés, le troisième champ et les suivants contiennent les champs clés figurant 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). |
Dans les deux tables ci-dessous, la première dresse la liste d'un certain nombre d'événements discrets tandis que la deuxième définit les heures de début et de fin pour la génération de différentes commandes. Au moyen du préfixe IntervalMatch, il est possible de connecter les deux tables de manière logique afin de rechercher, par exemple, les commandes ayant subi des perturbations et les commandes ayant été traitées par telle ou telle équipe.
La table OrderLog contient à présent une colonne supplémentaire : Time. Le nombre d'enregistrements est également étendu.
Time | Start | End | Order |
---|---|---|---|
00:00 | - | - | - |
01:18 | 01:00 | 03:35 | A |
02:23 | 01:00 | 03:35 | A |
04:15 | 02:30 | 07:58 | B |
04:15 | 03:04 | 10:27 | C |
08:00 | 03:04 | 10:27 | C |
08:00 | 07:23 | 11:43 | D |
11:43 | 07:23 | 11:43 | D |
(en utilisant keyfield)
Il s'agit du même exemple que ci-dessus, avec l'ajout de ProductionLine en tant que champ clé.
Une zone table peut à présent être créée comme ci-dessous :
ProductionLine | Time | Event | Comment | Order | Start | End |
---|---|---|---|---|---|---|
P1 | 00:00 | 0 | Start of shift 1 | - | - | - |
P2 | 01:00 | 0 | Start of shift 1 | - | - | - |
P1 | 01:18 | 1 | Line stop | A | 01:00 | 03:35 |
P1 | 02:23 | 2 | Line restart 50% | A | 01:00 | 03:35 |
P1 | 04:15 | 3 | Line speed 100% | B | 02:30 | 07:58 |
P1 | 04:15 | 3 | Line speed 100% | C | 03:04 | 10:27 |
P1 | 08:00 | 4 | Start of shift 2 | C | 03:04 | 10:27 |
P2 | 09:00 | 4 | Start of shift 2 | D | 07:23 | 11:43 |
P1 | 11:43 | 5 | End of production | - | - | - |
P2 | 11:43 | 5 | End of production | D | 07:23 | 11:43 |