SQLで指定日から連続した日付を取得します。
集計画面で日ごとの合計を表示したい場合の親テーブルとして利用できます。
-
例1(ALL_CATALOGを利用)
1
SELECT
TO_DATE(
'20150101'
,
'YYYYMMDD'
) + ROWNUM -1
AS
DCOL
FROM
ALL_CATALOG
WHERE
TO_DATE(
'20150101'
,
'YYYYMMDD'
) + ROWNUM -1 <= TO_DATE(
'20150131'
,
'YYYYMMDD'
)
ORDER
BY
1;
FROM句には指定日から連続した日付の範囲分の行を持っている必要があります。
今回の例では「ALL_CATALOG」を利用していますが、
そもそも参照権限がない場合もあるので、1~31までのNoだけを持つ空テーブルを利用します。
-
例2(ALL_CATALOGの代わりに1~31までのNoだけを持つ空テーブルを利用)
1
SELECT
TO_DATE(
'20150101'
,
'YYYYMMDD'
) + ROWNUM -1
AS
DCOL
FROM
(
SELECT
LEVEL
id
FROM
DUAL
CONNECT
BY
LEBEL <= 31)
WHERE
TO_DATE(
'20150101'
,
'YYYYMMDD'
) + ROWNUM -1 <= TO_DATE(
'20150131'
,
'YYYYMMDD'
)
ORDER
BY
1;
-
例3(1~31までのNoだけを持つ空テーブルだけを利用)
1
SELECT
SYSDATE +
LEVEL
AS
HIZEKE
FROM
DUAL
CONNECT
BY
LEBEL <= 31;