Oracle SQL последовательные даты - PullRequest
0 голосов
/ 29 апреля 2019

Я создаю отчет, который будет обработан через OBIEE для отправки уведомлений по электронной почте соответствующему конечному пользователю в зависимости от времени после начальной даты.

Первая часть относительно прямолинейна и прекрасно работает;Я создал инструкцию CASE WHEN для определения дня, затем в зависимости от этого дня добавляю определенное количество дней для третьего рабочего дня

CASE WHEN day_of_week = '7' THEN ( report_date + 4 ) ELSE NULL END 

Это жестко задано и выполняет требуемую работу.Следующий шаг, однако, является более сложным.Мне нужно создать еще один столбец, который будет динамически отображать каждый второй рабочий день после третьего дня (например, если сегодня воскресенье, то в этом новом столбце будет отображаться рабочий день 5 с отчетной датой, то есть с пятницей. Для следующего понедельника он должен быть равен NULL, но затембыть повторно заполненным во вторник и т. д.

У меня есть решение, которое не является динамическим, как показано в блоке кода.

CASE
    WHEN day_of_week = '7'
         AND trunc(SYSDATE) IN (
        ( report_date + 6 ),
        ( report_date + 9 ),
        ( report_date + 11 )
    ) THEN SYSDATE
    ELSE NULL
END

В идеале, уведомление было быдействие после 4-го уведомления (report_date + 11), так что этого решения могло бы быть достаточно, если бы я затем убедил конечных пользователей получать уведомления каждый рабочий день после 4-го уведомления, но, очевидно, это изменение требований.

Есть ли какой-нибудь способ, которым я мог бы создать последовательный пакет, который делает это? Я попробовал некоторый базовый последовательный код PLSQL, но OBIEE не позволил мне вызвать его в модели данных. Так что я не уверен, будет ли работать маршрут пакета илиесли бы я мог сделать что-то в стандартном SQL в самой модели данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...