如何在MY SQL的函数中使用两个变量

问题描述

我有下表,我想创建一个函数,该函数以emp_name作为输入,并返回最后一笔付款作为其输出

enter image description here

例如,如果我输入“ 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 (将#修改为@)