У меня есть таблица ниже.Мне нужно создать строку для каждого месяца от hire_dt до term_dt
id hire_dt term_dt
1 08/07/2017 02/20/2018
Ожидаемые результаты:
id hire_dt term_dt Month level_alias
1 08/07/2017 10/20/2017 201708 1
1 08/07/2017 10/20/2017 201709 2
1 08/07/2017 10/20/2017 201710 3
Запрос:
SELECT DISTINCT
ID,
HIRE_DT,
TERM_DT,
TO_CHAR(ADD_MONTHS(TRUNC(HIRE_DT, 'MM'), LEVEL -1), 'YYYYMM') AS MONTH,
LEVEL AS LEVEL_ALIAS
FROM AHR
JOIN HA ON ID = HA.id --AND RNK = 1
WHERE 1=1
CONNECT BY LEVEL <= 1 + MONTHS_BETWEEN(TRUNC(TERM_DT,'MM'),TRUNC(HIRE_DT,'MM'))
AND PRIOR ID = ID AND PRIOR HIRE_DT=HIRE_DT
AND PRIOR SYS_GUID() IS NOT NULL
AND AHR.ASSOC_AIN_ID = 1
Результаты:
id hire_dt term_dt Month level_alias
1 08/07/2017 201708 1
1 08/07/2017 10/20/2017 201708 1
1 08/07/2017 10/20/2017 201709 2
1 08/07/2017 10/20/2017 201710 3
Почему я получаю нулевое значение term_dt?