IntervalMatch
Het prefix IntervalMatch wordt gebruikt voor het maken van een tabel waarin discrete numerieke waarden worden gekoppeld aan een of meer numerieke intervallen, en waarin de waarden optioneel worden gekoppeld aan een of meer extra sleutels.
Syntaxis:
IntervalMatch (matchfield)(loadstatement | selectstatement )
IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
Het prefix IntervalMatch moet voor een LOAD- of SELECT-opdracht worden geplaatst waarmee de intervallen worden geladen. Het veld met de discrete gegevenspunten (Tijd in het voorbeeld verderop) en extra sleutels moet al in Qlik Sense geladen zijn vóór de opdracht met het prefix IntervalMatch. Het prefix leest dit veld niet zelf uit de databasetabel. Het prefix zet de geladen tabel met intervallen en sleutels om in een tabel die een extra kolom bevat: de discrete numerieke gegevenspunten. Tevens wordt het aantal records zodanig uitgebreid dat de nieuwe tabel één record per mogelijke combinatie van discreet gegevenspunt, interval en waarde van het sleutelveld of de sleutelvelden bevat.
De intervallen kunnen elkaar overlappen en de discrete waarden worden aan alle relevante intervallen gekoppeld.
Als het prefix IntervalMatch wordt uitgebreid met sleutelvelden, wordt het gebruikt voor het maken van een tabelkoppeling van discrete numerieke waarden met een of meer numerieke intervallen, terwijl tegelijkertijd de waarden van een of meer extra sleutels worden gekoppeld.
Om te voorkomen dat ongedefinieerde intervallimieten worden genegeerd, moet u mogelijk NULL-waarden toewijzen aan andere velden met de onderste en bovenste limieten voor het interval. Dit kan worden afgehandeld met de opdracht NullAsValue of door een expliciete test waarbij NULL-waarden worden vervangen door een numerieke waarde ruim voor of na een van de discrete numerieke gegevenspunten.
Argumenten:
Argument | Beschrijving |
---|---|
matchfield | Het veld met de discrete numerieke waarden voor koppeling aan intervallen. |
keyfield | Velden met de extra kenmerken die bij de transformatie moeten worden gekoppeld. |
loadstatementorselectstatement | Moet resulteren in een tabel waarvan het eerste veld de laagste limiet van elk interval bevat en het twee veld de hoogste limiet. Als sleutelkoppeling wordt gebruikt, moeten het derde veld en de volgende velden de sleutelvelden bevatten van de opdracht IntervalMatch. De intervallen zijn altijd gesloten, dat wil zeggen dat de eindpunten in het interval zijn opgenomen. Niet-numerieke limieten zorgen ervoor dat het interval buiten beschouwing wordt geladen (ongedefinieerd). |
Voorbeeld 1:
In de twee onderstaande tabellen wordt in de eerste een aantal discrete gebeurtenissen weergegeven en worden in de tweede de begin- en eindtijden voor de productie van verschillende bestellingen gedefinieerd. Met behulp van het prefix IntervalMatch kan een logische verbinding tot stand worden gebracht tussen de twee tabellen om bijvoorbeeld uit te zoeken welke bestellingen last hadden van storingen en welke bestellingen door welke ploegen zijn verwerkt.
De tabel OrderLog bevat nu een extra kolom: Time. Het aantal records is eveneens uitgebreid.
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 |
Voorbeeld 2: (met keyfield)
Hetzelfde voorbeeld als boven, waarbij ProductionLine is toegevoegd als sleutelveld.
Het volgende tabelvak kan nu worden gemaakt:
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 |