これにより、1年間、すべての行方不明の日が表示されます( SQL Fiddle 。
all_dates
2012年のすべての日付のリストを生成し(必要に応じて調整)、LEFT JOIN
IS NULL
をチェックしています ソーステーブルに存在する日付を削除します。
WITH all_dates AS (
SELECT TO_DATE('01-jan-2012') + ROWNUM - 1 AS d
FROM dual
CONNECT BY ROWNUM <= ADD_MONTHS(TO_DATE('01-jan-2012'), 12 ) - TO_DATE('01-jan-2012')
)
SELECT all_dates.d
FROM all_dates
LEFT JOIN t ON ( t.d = all_dates.d )
WHERE t.d IS NULL
ORDER BY all_dates.d
;
日付を3回ハードコーディングするのではなく、必ずバインド変数を使用してください。