本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
PostgreSQLでは、テーブルにない値を複数行レコードにわたって生成する事が可能。
generate_series
を利用して、今月から1年前から3か月間の月を取得しYYYYMM形式で表示(例 2016/3/1 ⇒ 201603)し、さらにtable1にあるcdにそれぞれYYYYMMがあるレコードを生成する。JOINしない事でそれぞれのレコードに対して3か月間の月にあたるYYYYMMレコードを生成する。YYYYMMは文字列ではなくintegerで扱いたい。
SELECT cd,tsuki
FROM
table1,
(select to_number(to_char(date_trunc(‘month’, now() – interval ‘1 month’ * s.a) – interval ‘1 year’,’YYYYMM’),’999999′) as tsuki
from generate_series(0,2) as s(a)) as t_date