最良の方法は、行ジェネレーターを日付関数から分離することです。したがって、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