2016-01-08 30 views
1

我之前已经问过这些问题,但我认为最好问一个新问题,因为我的旧问题似乎略有不同。我没有提到现有的表格和那里的输入。MySQL使用现有表格创建函数声明

我有一个表'项目',其中包含每个项目的价格和库存等所有数据。我的功能应该从实际库存和物料价格中获取输入,并使用公式库存*价格将其转换为物料价值。如果itemvalue是负值,那么输出应该是0,否则返回正值。

CREATE function item_value (inventory int UNSIGNED, price decimal(8,2)) RETURNS DECIMAL(8,2) 
BEGIN 
IF inventory*price < 0 THEN 
    SET itemvalue = 0 
ELSE 
    SET itemvalue = inventory*price 
END IF; 

功能的签名:

item_value (inventory int UNSIGNED, price decimal(8,2)) 

表项目:

item

+0

究竟是什么问题 – DBug

回答

0

在我看来,你的功能无法正常工作,因为你不回任何东西。我对吗?您应该添加一个return语句...

CREATE FUNCTION item_value (inventory INT UNSIGNED, price DECIMAL(8,2)) RETURNS DECIMAL(8,2) 
BEGIN 
    DECLARE itemvalue DECIMAL(8,2) DEFAULT 0.0; 

    IF inventory*price < 0 THEN 
     SET itemvalue = 0 
    ELSE 
     SET itemvalue = inventory*price 
    END IF; 

    RETURN (itemvalue); 
END