无法在mySQL中完成一个功能

时间:2016-11-16 23:52:41

标签: mysql function join

当我处理函数时,我喜欢先测试一个独立的select语句。我做到了,结果很好。我的问题是当我尝试将其转换为函数时。

这是select语句,它可以正常工作

select sum(item.retailPrice * orderItem.quantity)
from orderItem
join orders 
on orders.orderId = orderItem.orderId
join item
on item.itemId = orderItem.itemId
where orders.orderId = 4

这是我的功能,它会出错。

CREATE FUNCTION getTotalPrice(oId int) 
RETURNS int
READS SQL DATA
BEGIN
declare total int;
select sum(item.retailPrice * orderItem.quantity) into total
from orderItem
join orders 
on orders.orderId = orderItem.orderId
join item
on item.itemId = orderItem.itemId
where orders.orderId = oId
return total;
END$$

该功能应该允许用户输入他们的orderId。

1 个答案:

答案 0 :(得分:1)

如果您使用SELECT INTO选择变量,则需要使用@符号来表示这些变量。很遗憾SQLFiddle目前尚未作出回应,因此我可以验证此建议,但我建议您尝试更改这两行:

select sum(item.retailPrice * orderItem.quantity) into total
...
return total;

对此:

select sum(item.retailPrice * orderItem.quantity) into @total
...
return @total;
祝你好运!