存储过程请求



我正在尝试创建这个存储过程,让您输入客户ID号,它将输出最高订单总数、客户名和姓氏。这是我到目前为止得到的-似乎无法得到的错误

错误代码:1064。
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在第6行的"MAX(o.TotalPrice(INTO HighestOrder FROM orders AS o JOIN cu"附近使用的正确语法

代码:

DELIMITER //   
CREATE PROCEDURE CustomerHighestOrders(IN CustomerID VARCHAR(3), OUT HighestOrder DECIMAL)
BEGIN 
SELECT 
c.FirstName,
c.LastName
MAX(o.TotalPrice)
INTO 
HighestOrder
FROM 
orders AS o
JOIN 
customer AS c USING(CID)
WHERE CustomerIDNumber = o.CID;
END //

看起来c.LastName后面缺少一个逗号。此外,我看不到您在任何地方使用CustomerID参数。它可能应该出现在WHERE子句中。I.E:WHERE CustomerIDNumber=客户ID;如果我根据你想做的事情正确理解的话。

也许你需要

CREATE PROCEDURE CustomerHighestOrders( IN CustomerID VARCHAR(3), 
OUT HighestOrder DECIMAL )
SELECT MAX(o.TotalPrice)
INTO HighestOrder
FROM orders AS o
JOIN customer AS c USING(CID)
WHERE CustomerID = o.CID;

从另一边看,同一列CID的JOIN和WHERE看起来很奇怪。。。

最新更新