Это будет непросто с вашей нынешней конструкцией стола.Вместо этого я рекомендую вести таблицу значений календаря, которую нужно проверить, чтобы она отображалась в таблице категорий.В этом случае рассмотрим следующую таблицу со встроенными символами:
WITH calendar AS (
SELECT date '2018-10-01' AS dt FROM dual UNION ALL
SELECT date '2018-10-02' FROM dual UNION ALL
SELECT date '2018-10-03' FROM dual UNION ALL
...
SELECT date '2018-10-31' FROM dual
)
Затем мы можем просто присоединить эту таблицу календаря к таблице категорий, чтобы пометить любые даты в октябре, которые не охватываются:
SELECT
c.dt
FROM calendar c
LEFT JOIN category cat
ON c.dt BETWEEN CAT.beginDT AND cat.EndDt
WHERE
cat.beginDT IS NULL;
В зависимости от того, какой именно вывод вы хотите, мы могли бы переработать вышеуказанный запрос.Но, надеюсь, ясно, что с помощью календарной таблицы гораздо проще сообщить, что вы хотите.