Най-добрият начин може да бъде да отделите генератора на редове от функцията за дата. Така че генерирайте списък от 0 до 6 и изчислете месеци от това. Ако искате да преминете месеците, направете това в клаузата with
with my_counter as (
Select Level-1 as id
from dual
connect by Level <= 7
)
select to_char(add_months(sysdate, id),'YYYYMM') from my_counter
Примерът по-долу ще ви позволи да включите датите, от които се нуждаете, за да изчислите разликата.
with my_counter as (
Select Level-1 as id
from dual
connect by level <= months_between(add_months(trunc(sysdate,'MM'), 6),
trunc(sysdate,'MM')) + 1
)
select to_char(add_months(trunc(sysdate, 'MM'), id),'YYYYMM') from my_counter