Редакция SQL- запроса( JOIN, WHERE, GROUP BY,)
Определить, какие товары имеются в таблице Goods, но не покупались в течение 2005 года
Поля в результирующей таблице: good_name
Этот код выдает правильный результат запроса,НО!!!! Я НЕ ЗАТРАГИВАЮ 2005 ГОД,КУДА МНЕ НАДО ЭТО YEAR(Payments.date) = 2005 ДОБАВИТЬ?
Пыталась добавить WHERE Payments.good IS NULL AND YEAR(Payments.date) = 2005 - ВЫДАЕТ ОШИБКУ.
Ответы (2 шт):
Автор решения: Aziz Umarov
→ Ссылка
Вот решение
SELECT good_name FROM Goods
LEFT JOIN Payments ON
Goods.good_id = Payments.good
AND YEAR(Payments.date) = 2005
WHERE Payments.good IS NULL
GROUP BY
good_id;
да конечно пока на данные не посмотришь не определишь вот так вот сходу
Автор решения: Dmitri F.
→ Ссылка
Другое решение
SELECT good_name FROM Goods
WHERE NOT EXISTS (SELECT good FROM Payments
WHERE good = good_id AND YEAR(date) = '2005')