Я беру базовый c курс по базе данных, и у нас возник вопрос, который я изо всех сил пытаюсь найти хорошее решение.
Мы должны запросить упрощенную базу данных SQLite NorthWind для продуктов, которые сделали не продавать в апреле 2014 года.
Мне нужно запросить три таблицы, чтобы получить это, таблицы Product, OrderItem и Order. OrderItem - это таблица с ProductId и OrderId. Таблица Order содержит OrderDate.
Предшествующая лекция посвящена различным объединениям, и я подозреваю, что эта частичная проблема связана с левыми объединениями, поскольку я хочу перечислить продукты без записей в таблице OrderItem после фильтрации Order by date.
Вот мой запрос:
SELECT COUNT(OI.Id) AS Amount, P.ProductName, O.OrderDate
FROM Product P
LEFT JOIN OrderItem OI ON P.Id = OI.ProductId
LEFT JOIN [Order] O ON O.Id = OI.OrderId
WHERE O.OrderDate LIKE("Apr%2014%")
GROUP BY P.ProductName
HAVING Amount = 0
ORDER BY Amount;
Возвращает пустой набор результатов. Кто-нибудь может указать мне правильное направление, как решить эту проблему?