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 в этом запросе не требуется.