/*
Задание 2.3
Сформировать запрос, который вывел бы последовательность из начальных дат 12 месяцев, начиная от текущего. Например, если текущая дата 13.09.2017, то запрос должен вывести:
N_МЕСЯЦА ДАТА_НАЧАЛА
0 01.09.2017
1 01.10.2017
2 01.11.2017
3 01.12.2017
4 01.01.2018
5 01.02.2018
6 01.03.2018
7 01.04.2018
8 01.05.2018
9 01.06.2018
10 01.07.2018
11 01.08.2018
12 01.09.2018
*/
with month_before (n, dt) AS (
SELECT 0 as n, to_char(add_months(trunc(sysdate,'MM'), 0), 'DD.MM.YYYY') as dt
from dual
UNION ALL
select n+1 as n, to_char(add_months(trunc(sysdate,'MM'), -(n+1)), 'DD.MM.YYYY') as dt
from month_before
where n < 12
)
SELECT db.n, db.dt
from month_before db
;