Как подсчитать значения с условием where, в котором мы можем указать дату начала и дату окончания на основе даты других таблиц

#mysql

Вопрос:

У меня есть два столика.

Таблица заказов — в этой таблице показаны заказы, выполненные за 5 дней доставки (Чт, Пт, Сб, Вс, Пн). Есть фиксированные 5 дней доставки. В этой таблице есть order_id, cust_id, день доставки, статус (завершено, обработка и т. Д.)

2 — я таблица — таблицы выбора-Она показывает количество продуктов, выбранных подписчиком для доставки в течение этой конкретной недели. Они могут выбрать любой из 20 продуктов на этой неделе. Количество продуктов одинаковое, но продукты меняются каждую неделю. Теперь в этой таблице у нас есть выбор для всех людей, которые могли выбрать 4-5 недель назад, но теперь они, возможно, отменили подписку.

В таблице выбора есть — Cust_id, Product_id, ProductSlot, дата начала(четверг, как недели, начинается с четверга).

Поэтому мне интересно узнать фактическое количество вариантов только для тех людей, которые действительно получили свой заказ (статус в таблице заказов — Завершено)на этой конкретной неделе. Как я могу добавить условие, что если заказ будет выполнен в течение этих 5 дней(неделя в таблице выбора), а затем подсчитать выбор по идентификатору продукта?

 Select product_id, cust_id, startDate, Number 
from selections S
Group by product_id
join orders O on S.cust_id = O.cust_id
where orders.status in('completed', processing)

 

этот запрос дает неверный результат, потому что он не учитывает даты доставки.

Таблица выбора — Таблица выбора

Таблица Заказов — Таблица Заказов

Выход — выход

считайте только выполненные заказы в пределах доставленных за эти 5 дней(Чт, Пт, Сб, Вс, Пн) и игнорируйте любые неудачные заказы и их выбор продуктов. В таблице выбора клиент с идентификатором cust_id 1239 выбрал 2 продукта, но его заказ имеет статус «сбой» в таблице заказов, поэтому не учитывайте его продукты.

Комментарии:

1. MySQL или PostgreSQL? Пожалуйста, не добавляйте теги для не задействованных баз данных

2. Что еще вы пробовали до сих пор? Вы ищете решение в MySQL или в PostgreSQL?

3. MYSQL. Я попытался добавить — ЛЕВЫЕ заказы на соединение O на S. cust_id = O. cust_id И S. Дата начала МЕЖДУ O. deliveydate И O. дата доставки. Просто пытаюсь понять.

4. Дайте нам примерные данные и ожидаемый результат, пожалуйста!!

5. Выполнено. Спасибо