Использование данных с этого сайта: https://www.sqlservertutorial.net/sql-server-sample-database/
Мне выдается приглашение
Создайте хранимую функцию findStoreByProduct (), которая будет принимать строка в качестве входных данных и возвращает store_id. Аргумент store_id относится к магазину с наибольшим запасом, указанным во входной строке товара.
Может ли кто-нибудь сначала выяснить, в чем разница между хранимыми функциями и хранимыми процедурами? Я все еще немного потерян на этом. Я просмотрел другие посты, посвященные этой проблеме, но все еще рисую пробел.
Тогда кто-нибудь может помочь мне понять, как / с чего начать? Моей первой мыслью было бы связать три таблицы (продукты, позиции заказа и заказы) с помощью подзапросов, но, очевидно, это должно быть более базовым c.
@ Imran Faruqi
Я думал, что сумел выяснить это с вашей помощью, но я думаю, что с моим кодом что-то не так, потому что я продолжаю получать один и тот же вывод, несмотря на мои операторы select.
DELIMITER //
CREATE function findStoreByProduct (product_name VARCHAR(300))
RETURNS INT DETERMINISTIC
BEGIN
DECLARE storeID INT;
DECLARE storeQuantity INT;
SELECT s.store_id from stocks as s
INNER JOIN
products AS p
ON s.product_id = p.product_id
ORDER BY p.product_id DESC
LIMIT 1
INTO storeID;
RETURN(storeID);
END //
SELECT findStoreByProduct("Trek XM700+ - 2018");
Несмотря на то, что я положил в функция, я всегда получаю один и тот же результат "1". Есть мысли?