创建过程: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