【问题标题】:Call Stored Procedures within a Stored Procedure with IF Logic使用 IF 逻辑在存储过程中调用存储过程
【发布时间】:2019-03-25 12:40:47
【问题描述】:

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

IF 错误调用 CALL report_novea_16st_EOM()

【问题讨论】:

  • 你为什么使用SELECT

标签: mysql sql


【解决方案1】:

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

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

请参阅manual

【讨论】:

  • 工作。谢谢尼克。
猜你喜欢
  • 1970-01-01
  • 2013-11-23
  • 2011-11-04
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多