1

我以前问过这些问题,但我认为最好问一个新问题,因为我的旧问题似乎略有不同。我没有提到现有的表和那里的输入。

我有一个表“项目”,其中包含所有数据,如每个项目的价格和库存。我的函数应该从实际库存和商品价格中获取输入,并使用公式库存*价格将其转换为商品价值。如果 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))

表项:

物品

4

1 回答 1

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
于 2016-01-08T15:57:40.493 回答