3-5. Создание единой временной оси

Таблицу связей построили, непрямые ассоциации восстановили. Осталось только разобраться с единой временной осью. Нам снове нажна вкладка Link Table TMP.

После кода восстановления связей в сделках, добавляем следующий скрипт:

            DatesTMP:
            load distinct 
            "ID сделки",
            "Сделки.Дата открытия" as Дата,
            'Сделки.Дата открытия' as ТипДаты
            Resident Сделки where not isnull("Сделки.Дата открытия");

            left join (Сделки.LinkTMP) load * Resident DatesTMP; drop table DatesTMP;

Что тут происходит: мы берем первичный ключ таблицы, загружаем даты одного из полей дат исходной таблицы называя его Дата. А также создаем служебное поле ТипДаты, в которое пишем название поля, из которого грузили значения дат. Это поле будет использоваться для указания в формулах, на какой тип даты вычислять результат.

Условие where not isnull(«Сделки.Дата открытия») говорит, что загружаться будут только непустые даты.

Если нужно добавить в единую временную ось несколько дат из одной таблицы (Дату создания и закрытия из сделки), то дописываем загрузку аналогичных 3-х полей, но уже сдругим полем дат.

Т.к. этот набор полей совпадет с тем, что уже лежит в DateTMP, то они склеятся, и во временную таблицу связей попадут оба типа дат.

Посмотрите в таблицу связей через модель данных. Теперь у записей сделок есть поле Дата, и у некоторых сделок это даты сразу 2-х типов.

Делаем аналогичную конструкцию для поля даты в планах.

Загружаем данные. Любуемся результатом в модели данных.

Теперь к полю Дата вы можете сгенерировать таблицу календаря, и он будет единым для всех фактов в приложении. Можете поглулить варианты по фразе Qlik Calendar или пройти соответствующий мини-курс.

Остался последний шаг — посмотреть, как работает этам модель в визуальном слое.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *