Я написал следующую хранимую процедуру ,
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
скажите мне, пожалуйста, как получить возвращаемое значение процедуры в другую переменную.