Похоже, вы хотите нормализовать медленно изменяющийся размерный тип 2 .Конечно, лучшим способом их обработки было бы использование временных таблиц с использованием синтаксиса Teradata или ANSI.
В Teradata есть хороший синтаксис для получения ожидаемого результата на основе типа данных Period,но есть возможность привести ваши даты начала / окончания к периоду:
SELECT id,
-- split the period back into seperate dates
Begin(pd) AS Open_date,
End(pd) AS Closed_Date
FROM
(
SELECT NORMALIZE -- magic keyword :-)
id, PERIOD(Open_date, Closed_Date) AS pd
FROM tab
) AS dt