Я пытаюсь получить серию дат всех дат, включая доступные даты, просматривая существующие заказы, текущий код такой:
select to_char(generate_series(
min(scheduled_jobs.at),
max(scheduled_jobs.at),
interval '1 day'), 'YYYY-MM-DD') AS "BookingDate", reference,
CASE WHEN (now(),now()) overlaps
(bookings.del_datetime,bookings.col_datetime) THEN 'On Demo'
WHEN now() > bookings.col_datetime THEN 'Complete'
WHEN NOT EXISTS (select
to_char(generate_series(
min(scheduled_jobs.at),
max(scheduled_jobs.at),
interval '1 day'), 'YYYY-MM-DD')) THEN 'Available'
ELSE 'Advanced Booking'
END AS "Booking Status"
from scheduled_jobs
LEFT OUTER JOIN bookings ON scheduled_jobs.jobable_id = bookings."id"
LEFT JOIN dates_table ON to_char(bookings.del_datetime, 'YYYY-MM-DD') =
dates_table.booking_date
where bookings.registrations = 'REG123'
GROUP BY bookings.registrations, bookings.del_datetime,
bookings.col_datetime, bookings.reference
order by 1 ASC
В настоящее время я получаю Complete, On Demo и Advanced, но также хочу показать Available. Получение этого результата
BookingDate | ссылка | Статус бронирования
2018-08-30 | 123456789 | Полное
2018-09-06 | 222222222 | На демоверсии
2018-09-07 | 222222222 | На демоверсии
2018-09-08 | 222222222 | На демоверсии
2018-09-12 | 789789789 | Предварительное бронирование
2018-09-13 | 789789789 | Предварительное бронирование
То, что я хотел бы показать, это доступные даты в Betwen, например:
BookingDate | ссылка | Статус бронирования
2018-09-06 | 222222222 | На демоверсии
2018-09-07 | 222222222 | На демоверсии
2018-09-08 | 222222222 | На демоверсии
2018-09-09 | ......... | Доступно
2018-09-10 | ......... | Доступно
2018-09-11 | ......... | Доступно
2018-09-12 | 789789789 | Предварительное бронирование
2018-09-13 | 789789789 | Предварительное бронирование
Большое спасибо