Я пытаюсь выбрать все наши товары, которые вообще не продавались за последние 2 месяца.
Я пытаюсь использовать этот запрос, но он не работает должным образом:
SELECT SalesDescription FROM Items I
LEFT JOIN Orders_Items OI
ON OI.ItemID=I.ItemID
LEFT JOIN Orders O
ON O.OrderID=OI.OrderID
WHERE OrderTime NOT BETWEEN date_sub(curdate(), interval 2 month)
AND date_sub(curdate(), interval 1 day)
Group By I.ItemID
По сути, я хочу получить все записи из таблицы Предметов (сгруппированные по идентификатору предмета), если и только если они не были заказаны в течение последних двух месяцев.
Когда ясделайте мое объединение выше, результирующая таблица выглядит примерно так:
Name OrderID OrderDate
Widget A 1 Last Year
Widget B 2 Last Week
Widget C 3 Last Year
Widget C 4 Last Week
Мой результат должен возвращать только виджет A, поскольку он не был заказан за последние 2 месяца.Тот факт, что он был заказан более года назад, не имеет значения.
Виджет C не должен появляться, поскольку заказ, содержащий виджет C, был размещен в последние 2 месяца.
Проблема в том,записи, которые я хочу, не будут иметь диапазон дат, связанный с ними.Еще один способ выразить это:
Я хочу начать со всех элементов в таблице Предметов, а затем исключить те, к которым прикреплены заказы И хотя бы один из этих прикрепленных заказов был размещен в течение 2 месяцев.диапазон.
Как я могу получить это?