IntervalMatch (расширенный синтаксис)
Расширенный префикс IntervalMatch используется для создания таблиц связывания дискретных числовых значений с одним или несколькими числовыми интервалами, а также связывания значений с одним или несколькими дополнительными ключами.
Это очень мощная и гибкая функция, которую можно использовать для связывания транзакций с изменяющимися в динамике по времени измерениями: медленно изменяющимися измерениями.
Префикс IntervalMatch устанавливается перед оператором Load или Select, который загружает интервалы. В QlikView до оператора с префиксом IntervalMatch уже должна быть загружена таблица, которая содержит дискретные точки диаграммы и дополнительные ключи. Он преобразует загруженную таблицу интервалов и ключей в таблицу, содержащую дополнительный столбец дискретных числовых точек диаграммы. Здесь также разворачиваются различные записи, что позволяет включать в новую таблицу одну запись на возможную комбинацию дискретных точек диаграммы, интервалов и значений ключевых полей.
Синтаксис имеет следующий вид:
intervalmatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
matchfield — это поле, содержащее дискретные числовые значения, которые нужно связать с интервалами.
keyfield(s) — это поля, содержащие дополнительные атрибуты, сопоставляемые при преобразовании.
loadstatement или selectstatement должен выдавать таблицу, в которой первые два поля содержат верхний и нижний предел каждого интервала, а третье и последующие поля содержат keyfield(s), существующие в операторе IntervalMatch. Интервалы всегда закрытые, т. е. конечные точки включены в интервал. Нечисловые границы приводят к тому, что интервал игнорируется (неопределенный).
Во избежание игнорирования неопределенных границ интервалов может потребоваться разрешить сопоставление значений NULL с другими полями, которые образуют нижнюю или верхнюю границы интервала. Это выполняется с помощью оператора NullAsValue или явного теста, который заменяет значения NULL числовыми значениями, расположенными на достаточном расстоянии перед или после дискретных числовых точек диаграммы.
Пример:
Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;