Mysql 存储过程错误消息

Mysql 存储过程错误消息,mysql,stored-procedures,Mysql,Stored Procedures,我已按如下方式实现了存储过程,但在尝试应用它时收到以下错误消息: 错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“WHERE symbol\u id=id GROUP BY symbol\u id”附近使用的正确语法 我做了一些调试,发现它是由@max变量引起的,我正试图将结果写入@max变量,但是我没有发现语法有任何错误,请任何人提供建议 DROP PROCEDURE IF EXISTS `GENERATE_REPORT`; DELIMITE

我已按如下方式实现了存储过程,但在尝试应用它时收到以下错误消息:

错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“WHERE symbol\u id=id GROUP BY symbol\u id”附近使用的正确语法

我做了一些调试,发现它是由@max变量引起的,我正试图将结果写入@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
$$
定界符

您的中有不正确的语法:

改变

SELECT SUM(quantity)
FROM trade 
INTO @max -- Incorrect placement
WHERE symbol_id = id
GROUP BY symbol_id;


进入的应该在选择的之后和来自的之前。

您的:

改变

SELECT SUM(quantity)
FROM trade 
INTO @max -- Incorrect placement
WHERE symbol_id = id
GROUP BY symbol_id;


进入的应该在选择的之后和来自

的之前!我已经看了两个小时了,看不出来!谢谢:)啊!我已经看了两个小时了,看不出来!谢谢:)