IntervalMatch (erweiterte Syntax)
Mithilfe des Zusatzes IntervalMatch wird eine Tabelle angelegt, in der die diskreten numerischen Werte mit einem oder mehreren numerischen Intervallen abgeglichen werden und zugleich ein Abgleich zwischen den Werten von einem oder mehreren zusätzlichen Schlüsseln erfolgt.
Diese Funktion ist sehr leistungsfähig und flexibel. Sie lässt sich zum Verknüpfen von Transaktionen mit Dimensionen einsetzen, die sich im Laufe der Zeit verändern: sich langsam verändernde Dimensionen.
Der Zusatz IntervalMatch muss vor dem Befehl Load oder Select angelegt werden, mit dem die Intervalle geladen werden. Die Tabelle, die die diskreten Datenpunkte enthält (im Beispiel unten die Uhrzeit), muss vor dem Befehl mit dem IntervalMatch-Zusatz bereits in QlikView geladen sein. Der Zusatz formt die geladene Intervalltabelle und Schlüssel in eine Tabelle um, die eine zusätzliche Spalte enthält: die diskreten numerischen Datenpunkte. Er erweitert auch die Anzahl der Datensätze, sodass die neue Tabelle über einen Datensatz für jede mögliche Kombination diskreter Datenpunkte, des Intervalls und des Werts der Schlüsselfelder verfügt.
Die Syntax lautet:
intervalmatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
matchfield ist das Feld, dessen numerische Werte in Intervallen gruppiert werden.
keyfield(s) sind Felder, die die zusätzlichen Attribute enthalten, die während der Umformung abgeglichen werden.
Durch loadstatement oder selectstatement muss eine Tabelle entstehen, in der die ersten beiden Felder die unteren bzw. oberen Grenzen der Intervalle enthalten und das dritte (bzw. alle weiteren Felder) die keyfield(s), die im Befehl IntervalMatch aufgeführt sind. Die Intervalle sind abgeschlossen, d. h. die Grenzwerte sind in den Intervallen enthalten. Nicht numerische Beschränkungen bewirken, dass das Intervall nicht berücksichtigt wird (undefiniert).
Um zu verhindern, dass nicht definierte Intervallbeschränkungen ignoriert werden, sollte es möglich sein, NULL-Werte anderen Feldern zuzuordnen, die die untere oder obere Grenze des Intervalls bilden. Dieser Vorgang kann über den Befehl NullAsValue oder einen Test erfolgen, in dem NULL-Werte vor oder nach den diskreten numerischen Datenpunkten durch einen numerischen Wert ersetzt werden.
Beispiel:
Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;