我需要你的帮助。我应该创建一个计算处方药处方成本的函数。公式应该是这样的:
药品价格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 ;
所以,跑完之后我会得到这个窗口:
而不是使用药物的价格,我必须使用药物的名称,参考表中的价格。
表处方是:
这意味着,如果我输入药品的名称,应该计算价格,但我不知道如何。
我想我必须在create function语句中组合select语句。
顺便说一句:英语不是我的母语!请原谅我的错误!答案 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;
喜欢这个..?