问题描述
我有下表,我想创建一个函数,该函数以emp_name作为输入,并返回最后一笔付款作为其输出。
例如,如果我输入“ B”作为输入,我将得到106,这是对“ B”的最后一笔付款(或“ C” => 90)。 有几种方法可以这样做,但是我尝试如下使用2变量函数:
DROP FUNCTION IF EXISTS f_last_payment;
DELIMITER $$
CREATE FUNCTION f_last_payment(p_emp_name varchar(255))
RETURNS int
DETERMINISTIC NO sql READS sql DATA
BEGIN
DECLARE v_max_pay_date int;
DECLARE v_payment_amount int;
SELECT MAX(pay_date)
INTO v_max_pay_date
FROM table_payment t
WHERE t.emp_name = p_emp_name;
SELECT t.payment_amount
INTO v_payment_amount
FROM table_payment t
WHERE t.emp_name = p_emp_name AND t.pay_date = v_max_pay_date;
RETURN v_max_pay_date;
END$$
DELIMITER ;
select f_last_payment('B');
尽管这些代码对我来说似乎是正确的,并且没有发生错误,但是由于某种原因,它不会返回输出。 如果您能帮助我理解问题,我将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)