Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建过程:mysql语法错误_Mysql_Procedure - Fatal编程技术网

创建过程:mysql语法错误

创建过程:mysql语法错误,mysql,procedure,Mysql,Procedure,当我DELCARE@qty INT时,我总是得到一个语法错误,因为我设置了qty=…和以及q=@qy 我不知道如何纠正那些语法错误 以下是程序: CREATE PROCEDURE test(target INT) BEGIN DECLARE qty INT -- Get closest qty @qty = SELECT q FROM MH ORDER BY ABS(@target - q) ASC

当我
DELCARE@qty INT
时,我总是得到一个语法错误,因为我
设置了qty=…
以及q=@qy

我不知道如何纠正那些语法错误

以下是程序:

CREATE PROCEDURE test(target INT)
BEGIN

    DECLARE qty INT

    -- Get closest qty
    @qty = SELECT q
            FROM MH
            ORDER BY ABS(@target - q) ASC
            LIMIT 1


    -- use that "actual" qty in your query
    SELECT  ((p+m)*((valore+100)/100))
    FROM    PL
    JOIN    TV
    JOIN    MH
    WHERE   Date = '20130717'
    AND     End = ''
    AND     q = @qty

END

语法错误是。。。?也许是因为缺少
终止两个查询,使DB认为第二个选择实际上是第一个查询的
限制的一部分?@MarcB:
#1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,了解第7行“@qty=SELECT q”附近使用的正确语法,因为您忘记了
也在声明行之后…我得到这个错误:
#1064-您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解第4行“”附近使用的正确语法。尝试删除所有@符号。第4行有任何
@
符号。。。我做到了,它不起作用。请在日期前后加上反引号,结束列名。类似地,如果您试图在phpmyadmin中运行此命令,则在顶部使用ad delimiter//并以//
CREATE PROCEDURE test(target INT)
BEGIN

DECLARE qty INT default 0;

SELECT q into qty
        FROM MH
        ORDER BY ABS(target - q) ASC
        Limit 1;
SELECT  ((p+m)*((valore+100)/100))
FROM    PL
JOIN    TV
JOIN    MH
WHERE   Date = '2013/07/17'
AND     End = ''
AND     q = qty;

END