Таблицу связей построили, непрямые ассоциации восстановили. Осталось только разобраться с единой временной осью. Нам снове нажна вкладка 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 или пройти соответствующий мини-курс.
Остался последний шаг — посмотреть, как работает этам модель в визуальном слое.