Названия и цены услуг, проданных с 1 января 2021 по следующую неделю

23. Вывести названия и цены услуг, проданных с 1 января 2021 в течение недели

Условие задачи:
Есть таблицы:

  • Services(id, name, cost, price, group_id) — услуги;

  • Groups(id, name) — группы услуг;

  • Orders(id, datetime, srv_id) — продажи услуг.

Необходимо вывести название и розничную цену (price) всех услуг, которые продавались с 1 января 2021 и в течение следующей недели.


Спойлеры к решению

Подсказки
💡 Соедини Orders и Services по Orders.srv_id = Services.id.
💡 Отфильтруй продажи по полю datetime.
💡 Для TIMESTAMP удобнее использовать полуоткрытый диапазон дат.
💡 Если услуга продавалась несколько раз, используй DISTINCT.

Решение
SELECT DISTINCT
    s.name,
    s.price
FROM Services s
JOIN Orders o
    ON o.srv_id = s.id
WHERE o.datetime >= '2021-01-01'
  AND o.datetime < '2021-01-09';

Диапазон:

o.datetime >= '2021-01-01'
AND o.datetime < '2021-01-09'

включает все продажи с начала 1 января до конца 8 января.

DISTINCT исключает повторения, если одна услуга продавалась несколько раз.

Таблица Groups в этом запросе не требуется.