使用IF Logic调用存储过程中的存储过程

时间:2019-03-25 12:40:48

标签: mysql sql

无法基于存储过程中的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()

1 个答案:

答案 0 :(得分:3)

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

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

请参见manual