Я выполнил хранимую процедуру, как показано ниже, однако я получаю следующее сообщение об ошибке при попытке претендует его:сохраненной ошибка процедуры сообщение
ERROR 1064 (42000): У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'WHERE symbol_id = id GROUP BY symbol_id;
Я сделал некоторую отладку и обнаружил, что она была вызвана переменной @max, которую я пытаюсь записать в результате, однако я не вижу ничего плохого в синтаксисе, может ли кто-нибудь посоветуете?
DROP PROCEDURE IF EXISTS `GENERATE_REPORT`;
DELIMITER $$
CREATE DEFINER=CURRENT_USER PROCEDURE `GENERATE_REPORT`()
BEGIN
DECLARE id INT;
DECLARE max INT;
DECLARE at_end BIT DEFAULT 0;
DECLARE cur CURSOR
FOR SELECT symbol_id from trade;
DECLARE CONTINUE HANDLER
FOR SQLSTATE '02000' SET at_end=1;
OPEN cur;
FETCH cur INTO id;
WHILE (NOT at_end) DO
SELECT SUM(quantity) FROM trade INTO **@max** WHERE symbol_id = id GROUP BY symbol_id;
FETCH cur into id;
END WHILE;
CLOSE cur;
END
$$ DELIMITER;
аааа! Я смотрел на него в течение 2 часов и не видел этого! благодаря :) – godzilla