Mysql 使用IF逻辑调用存储过程中的存储过程
无法基于存储过程中的Mysql 使用IF逻辑调用存储过程中的存储过程,mysql,sql,Mysql,Sql,无法基于存储过程中的IF逻辑调用存储过程。我需要返回2个存储过程中的1个的结果,具体取决于月份的日期 该逻辑的格式不正确,我不知道如何正确格式化以获得所需的结果 调用的两个过程都只是SELECT查询 DELIMITER // CREATE PROCEDURE report_novea_remittance() BEGIN SELECT IF( DAYOFMONTH(CURDATE()) < 15, CALL report_novea_1st_15th(),
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 ;
分隔符//
创建程序报告\u novea\u汇款()
开始
选择(DAYOFMONTH(CURDATE())<15,
调用报告\u novea\u 1st\u 15th(),
调用report_novea_16st_EOM());
结束
定界符;
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次呼叫报告(新第1次呼叫报告第15次呼叫报告)
如果错误,则呼叫报告\u novea\u 16st\u EOM()
这不是在存储过程中编写
IF
语句的方式。正确的格式是:
IF DAYOFMONTH(CURDATE()) < 15 THEN
CALL report_novea_1st_15th();
ELSE
CALL report_novea_16st_EOM();
END IF;
如果DAYOFMONTH(CURDATE())<15,则
请致电“报告第一次(第15次)”;
其他的
调用report_novea_16st_EOM();
如果结束;
请参阅。为什么要使用
选择?已工作。谢谢你,尼克。@Jake别担心。如果这确实解决了你的问题,请考虑通过回答所接受的答案来关闭问题(在上/下投票箭头下的复选标记)。看见