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 числовыми значениями, расположенными на достаточном расстоянии перед или после дискретных числовых точек диаграммы.

Example:  

Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;