как получить возвращаемое значение процедуры в другую переменную.? - PullRequest
0 голосов
/ 16 июня 2020

Я написал следующую хранимую процедуру ,

delimiter //

create procedure analysis(in symbol varchar(50), days int)
begin


      set @stm = concat(' select round(avg(t2.open-t1.adj_close),2)
from (
  select adj_close, row_number() over (order by date desc) - 1 rn 
  from ',symbol,' 
  order by date desc 
  limit 1,',days,'
) t1 inner join (
  select open, row_number() over (order by date desc) rn  
  from ',symbol,' 
  order by date desc limit ',days,'
) t2 on t2.rn = t1.rn');



    prepare stmt from @stm;
    execute stmt ;
    deallocate prepare stmt;
end//

delimiter ;

и после вызова процедуры: call analysis ('MITTAL', 10);

вывод:

+------------------------------------+
| round(avg(t2.open-t1.adj_close),2) |
+------------------------------------+
|                               4.32 |
+------------------------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

я хочу сохранить, результат выше в переменной внутри другой процедуры.

поэтому я сделал это вот так,

set @var =call analysis('MITTAL',10);

но я получил ошибку как показано ниже,

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'call analysis('MITTAL',10)' at line 1

скажите мне, пожалуйста, как получить возвращаемое значение процедуры в другую переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...