IntervalMatch (uitgebreide syntaxis)
De uitgebreide prefix IntervalMatch wordt 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.
Dit is een zeer krachtige en flexibele functie die kan worden gebruikt voor het koppelen van transacties met dimensies die veranderen na verloop van tijd: langzaam veranderende dimensies.
Het prefix IntervalMatch moet voor een Load- of een Select-opdracht worden geplaatst waarmee de intervallen worden geladen. De tabel met de discrete gegevenspunten en de extra sleutel moet al in QlikView zijn geladen vóór de instructie met de prefix IntervalMatch. 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 syntaxis is:
intervalmatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
matchfield is het veld met de discrete numerieke waarden voor koppeling aan intervallen.
keyfield(s) zijn velden met de extra kenmerken die bij de transformatie moeten worden gekoppeld.
loadstatement- of selectstatement-opdrachten moet resulteren in een tabel waarbij de eerste twee velden de onder- en bovenlimiet van elk interval bevatten en de derde en eventuele daaropvolgende velden het of de keyfield(s) in de IntervalMatch-opdracht. 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).
Om te voorkomen dat ongedefinieerde intervallimieten worden genegeerd, moet u mogelijk NULL-waarden (lege waarden) toewijzen aan andere velden met de onderste en bovenste limieten voor het interval. Dit kan worden afgehandeld met de NullAsValue-opdracht of door een expliciete test waarbij NULL-waarden worden vervangen door een numerieke waarde ruim voor of na een van de discrete numerieke gegevenspunten.
Voorbeeld:
Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;