Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql嵌套存储过程调用_Mysql_Stored Procedures_Syntax - Fatal编程技术网

MySql嵌套存储过程调用

MySql嵌套存储过程调用,mysql,stored-procedures,syntax,Mysql,Stored Procedures,Syntax,我在MySQL中有2个存储过程。我想从一个调用另一个,但我需要一些语法方面的帮助 以下是程序1 FindPreviousDate DELIMITER $$ CREATE PROCEDURE `FindPreviousDate`(IN eventdate DATETIME, IN lookbackDays INT, IN symbol VARCHAR(20)) BEGIN SELECT * FROM Price a WHERE a.eventDate between (eventDate - in

我在MySQL中有2个存储过程。我想从一个调用另一个,但我需要一些语法方面的帮助

以下是程序1 FindPreviousDate

DELIMITER $$ CREATE PROCEDURE `FindPreviousDate`(IN eventdate DATETIME, IN lookbackDays INT, IN symbol VARCHAR(20))
BEGIN
SELECT *
FROM Price a
WHERE a.eventDate between (eventDate - interval lookbackDays day) and (eventdate - interval 1 day) and a.symbol = symbol
ORDER BY a.eventDate DESC
LIMIT 1;
END
以下是过程2 FindCloseEvent

CREATE PROCEDURE `FindCloseEvent`(IN startdate DATETIME, IN enddate DATETIME,IN symbol VARCHAR(20), IN cutoff DOUBLE)
BEGIN
SELECT *
FROM Price a
WHERE a.eventDate between startdate and enddate and
(SELECT COUNT(*) from Price b where b.eventDate = a.eventDate and b.closePrice < cutoff and a.symbol = b.symbol and
(SELECT COUNT(*) from Price c where c.eventDate = (b.eventDate - interval 1 day) and c.closePrice >= cutoff and b.symbol = c.symbol));
END
我需要帮助,让语法正确。我甚至不确定mySql是否能满足我的要求


谢谢

在过程中,您可以使用OUT变量,这些变量会被填充,并且在过程之外可用。 或
因为MySQL过程不返回值。您需要一个存储的函数来实现这一点

使用下面链接中给出的示例从过程2调用函数1

您甚至可以将function1的结果存储到procedure2的某个变量中,并在以后的查询中使用它

(b.eventDate - interval 1 day)