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 con il tempo: dimensioni che subiscono modifiche 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. Il prefisso 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.

loadstatement o 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;