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を受け取ります。サブクエリが1行以上を返します/指数移動平均
何か助けに感謝します。
制限が1の場合、エラーは発生しません。 1より大きい制限を調整すると、次のようになります。サブクエリは1行以上を返します – Chad