Хорошо, вот некоторые примеры данных и ожидаемые результаты, которые я хотел бы:
Вот условия:
- Если день с 1-го по 25-й, добавьте два месяца плюс сколько дней до следующего первого
- Если день 26-го числа до конца месяца, прибавьте три месяца плюс сколько дней до следующего первого
Вот то, что я пытаюсь, и я близок, но, похоже, это делает массу вычислений, и я хотел посмотреть, смогу ли я упростить это:
CASE
WHEN (((DATE_TRUNC('month',
(date_field + INTERVAL '5 DAYS')) + INTERVAL '2 MONTH') -
(date_field + INTERVAL '5 DAYS') >= 62) AND
((DATE_TRUNC('month', (date_field + INTERVAL '5 DAYS')) +
INTERVAL '2 MONTH') - (date_field + INTERVAL '5 DAYS') <= 92))
THEN (DATE_TRUNC('month',
(date_field + INTERVAL '5 DAYS')) + INTERVAL '2 MONTH')
ELSE (DATE_TRUNC('month',
(date_field + INTERVAL '5 DAYS')) + INTERVAL '3 MONTH')
END