Oracleで連続する日付データ(カレンダー)を作成する

Oracle

Oracleのデータを元に分析する際に年度の計算や月のソート順をその都度SQLに書いていました。
QlikViewを使用し始めると、カレンダーマスタSQLを別途流して日付同士を合わせた方が日付のカラム名が変わっても修正が楽になることに気がついたので(今更)ちゃんと作ってみました

作成するデータ

  • 期間:2012年04月01日~2021年03月31日
  • 日付:年・月・日
  • 年度:4月~翌3月までを区切り(ここでは2012年度~2020年度となる)
  • ソート用:4月~翌3月までの順番を数値で
  • 曜日:0が日曜日を基準に数値で
  • 第何週目曜日:毎年度04月01日を基準に該当日の曜日が第何週目に当たるか

CALENDER_DATEの名前を一括置換すればいいので色んなパターンにも使えます