IntervalMatch (sintassi estesa)
Il prefisso IntervalMatch esteso consente di creare una tabella che corrisponde sia ai valori numerici discreti su uno o più intervalli numerici sia ai valori di una o più chiavi aggiuntive.
Si tratta di una funzione estremamente avanzata e flessibile che può essere utilizzata per il collegamento di transazioni con dimensioni che cambiano nel corso del tempo: dimensioni che cambiano lentamente.
Il prefisso IntervalMatch deve essere inserito prima di un'istruzione Load o Select che carica gli intervalli. La tabella che contiene i punti dati discreti e le chiavi aggiuntive deve essere già stata caricata in QlikView prima dell'istruzione con il prefisso IntervalMatch. pertanto trasforma la tabella caricata degli intervalli e delle chiavi in una tabella contenente una colonna aggiuntiva: i punti dati numerici discreti. Inoltre, espande il numero di record in modo che la nuova tabella disponga di un record per ogni combinazione possibile di punti dati discreti, intervallo e valore dei campi chiave.
La sintassi è:
intervalmatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
matchfield è il campo contenente i valori numerici discreti da collegare agli intervalli.
I campi keyfield(s) sono campi contenenti gli attributi aggiuntivi da associare nella trasformazione.
loadstatemento selectstatement deve comparire in una tabella dove i primi due campi contengono i limiti inferiore e superiore di ogni intervallo e il terzo e i campi seguenti conterranno i campi keyfield(s) presenti nell'istruzione IntervalMatch. Gli intervalli sono sempre chiusi, ossia i punti di fine sono inclusi nell'intervallo. I limiti non numerici fanno in modo che l'intervallo venga ignorato (non definito).
Per evitare che i limiti degli intervalli non definiti vengano ignorati, potrebbe essere necessario consentire il mapping dei valori NULL sugli altri campi che costituiscono i limiti inferiore e superiore dell'intervallo. Questa operazione può essere eseguita dall'istruzione NullAsValue o da un test esplicito che sostituisca i valori NULL con un valore numerico prima o dopo qualsiasi punto dati numerico discreto.
Esempio:
Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;