MySQL:使用select语句+计算创建函数

时间:2016-01-12 21:44:32

标签: mysql select int create-function

我需要你的帮助。我应该创建一个计算处方药处方成本的函数。公式应该是这样的:

药品价格x剂量x天花板(duartion / 24h)

功能的签名是:

处方药费用(mname varchar(100),剂量int,持续时间)

DELIMITER $$
CREATE FUNCTION prescription_costs (mname varchar(100), dosage int, duration time) RETURNS INT
BEGIN 
    DECLARE prescription_costs INT;
    IF mname < 0 THEN 
        SET prescription_costs = 0;
    ELSEIF dosage < 0 THEN
        SET prescription_costs = 0;
    ELSEIF duration < 0 THEN
        SET prescription_costs = 0;
    ELSE 
        SET prescription_costs = price*dosage*ceiling(duration/24);
    END IF;

    RETURN (prescription_costs);
END;
$$
DELIMITER ;

所以,跑完之后我会得到这个窗口:

mname

而不是使用药物的价格,我必须使用药物的名称,参考表中的价格。

表处方是:

prescription

这意味着,如果我输入药品的名称,应该计算价格,但我不知道如何。

我想我必须在create function语句中组合select语句。

顺便说一句:英语不是我的母语!请原谅我的错误!

2 个答案:

答案 0 :(得分:0)

您可以使用SELECT...INTO语句并执行以下操作:

SELECT your_price_column INTO price FROM your_table WHERE Name = mname
IF price < 0 THEN 
    SET prescription_costs = 0;
...

答案 1 :(得分:0)

CREATE FUNCTION prescription_costs (mname varchar(100), dosage int, duration time) RETURNS INT
BEGIN 
    DECLARE prescription_costs INT;
    DECLARE price decimal(8,2);
    SELECT Price into price from medicine where Name=mname;
    IF price < 0 THEN 
        SET prescription_costs = 0;

喜欢这个..?