用户定义的函数 - 我正在尝试创建一个使用来自多个表

时间:2015-10-21 16:18:51

标签: mysql sql user-defined-functions

我正在尝试创建一个接受来自一个参数的输入的函数,但是从多个表中连接数据以返回该数据的总和。

这是我的联接代码,工作正常:

select orderId, sum(itemPrice * quantity) as totalPrice
from orderItem
join item on item.itemId = orderItem.itemId
group by orderId;
  

orderItem表将数据存储在orderId,itemId和订单数量的以下列中。

orderId和itemId使用链接到其他表的外键。 orderId链接到记录usersId,订单日期,发货日期和目的地状态的订单表。

  

itemId链接到查找itemId的项目表,并检索项目的>价格。

以下是我目前为我的功能编写的代码:

delimiter $$
drop function if exists orderTotal $$

CREATE FUNCTION orderTotal(totalId varchar(50))
RETURNS int
READS SQL DATA
BEGIN
declare s int;
select sum(quantity) into s from orderItem where orderId = totalId;
return (s);
END $$

delimiter ;
select orderId, orderTotal(orderId) as totalPrice from orderItem group by orderID;

我知道我错过了一些东西,经过搜索后找不到有效的解决方案。请帮忙。大声笑

我绞尽脑汁后解决方案很简单。只需将join语句添加到select语句即可。所有人都能做到的就是笑。

delimiter $$

drop function if exists orderTotal $$

CREATE FUNCTION orderTotal(totalId varchar(50))
RETURNS int
READS SQL DATA
BEGIN
    declare s int;
    select sum(quantity * itemPrice) into s from orderItem
    join item on item.itemId = orderItem.itemId
    where orderId = totalId;
    return (s);
END $$

0 个答案:

没有答案