我正在尝试创建这个存储过程,让您输入客户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看起来很奇怪。。。