Я пытаюсь превратить этот выбор в функцию.
Вместо sysdate пользователь даст свою собственную дату, которую он хотел видеть.
(Извините за плохой английский).
SELECT trunc(sysdate),
trunc(sysdate) - 1,
trunc(sysdate) - 2,
trunc(sysdate) - 3,
trunc(last_day(sysdate)-1, 'mm'),
add_months(trunc(sysdate, 'MM'), -1) first_day_of_last_month,
add_months(trunc(sysdate, 'MM'), -2) first_day_of_last_month,
add_months(trunc(sysdate, 'MM'), -3) first_day_of_last_month,
add_months(trunc(sysdate, 'Q'), -6) first_day_of_last_quarter,
add_months(trunc(sysdate, 'Q'), -9) first_day_of_last_quarter,
add_months(trunc(sysdate, 'Q'), -12) first_day_of_last_quarter,
add_months(trunc(sysdate, 'Q'), -15) first_day_of_last_quarter,
add_months(trunc(sysdate, 'Q'), -18) first_day_of_last_quarter
FROM dual;
Результат должен выглядеть примерно так: 1 строка
1/7/2019 1/6/2019 1/5/2019 1/4/2019 1/1/2019 12/1/2018 11/1/2018 10/1/2018 7/1/2018 4/1/2018 1/1/2018 10/1/2017 7/1/2017