CREATE DEFINER = `ninja_dba`@`` PROCEDURE `adb`.`MACD12`( x int)
LANGUAGE SQL
DETERMINISTIC
READS SQL DATA
SQL SECURITY DEFINER
COMMENT ''
BEGIN
MACD_12:BEGIN
DECLARE z FLOAT;
DECLARE y FLOAT default 56.41;
DECLARE w float;
WHILE x < 10 do
INSERT into `MACD`(
x,y,z,X12) select z,y,x,w;
SET z= IFNULL ( (y + ((2/13) * (w - y))),Y) ;
SET y=z;
SET x =x+1;
SET w = (select close from`raw data`);
end while;
end MACD_12;
END
call macd12 (1);
我正在尝试构建指数移动平均线。问题的一部分是设置第一行,因此我在过程开始时声明第一行(56.41)。我相信该过程会起作用,但是当我尝试调用该过程时,我收到了臭名昭著的错误“子查询返回超过 1 行”错误 1242。
非常感谢任何帮助。