使用IF逻辑调用存储过程中的存储过程

问题描述 投票:2回答:1

无法在存储过程中基于IF逻辑调用存储过程。我需要根据月份的日期返回2个存储过程中的1个的结果。

逻辑格式不正确,我不知道格式化正确的方法以获得所需的结果。

调用这两个程序只是SELECT查询。

............................................

DELIMITER //
CREATE PROCEDURE report_novea_remittance()
BEGIN

SELECT IF( DAYOFMONTH(CURDATE()) < 15,
           CALL report_novea_1st_15th(),
           CALL report_novea_16st_EOM());
       END 
DELIMITER ;

................................................

如果每月的日期大于第15次调用report_novea_1st_15th()

如果错误调用CALL report_novea_16st_EOM()

mysql sql
1个回答
3
投票

这不是你在存储过程中编写IF语句的方式。正确的格式是:

IF DAYOFMONTH(CURDATE()) < 15 THEN
    CALL report_novea_1st_15th();
ELSE
    CALL report_novea_16st_EOM();
END IF;

manual

© www.soinside.com 2019 - 2024. All rights reserved.