MyTetra Share
Делитесь знаниями!
Рекурсия по датам
Время создания: 06.10.2017 16:03
Раздел: SQL Oracle - Задачи - Рекурсия
Запись: xintrea/mytetra_db_mcold/master/base/15072950090qi6axm5hz/text.html на raw.githubusercontent.com
/*
Задание 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

;

 
MyTetra Share v.0.59
Яндекс индекс цитирования