Nejlepším způsobem by mohlo být oddělení generátoru řádků od funkce data. Vygenerujte tedy seznam od 0 do 6 a z toho vypočítejte měsíce. Pokud chcete předat měsíce, udělejte to v klauzuli 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
Níže uvedený příklad vám umožní zapojit data, která potřebujete, abyste zjistili rozdíl.
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