存储过程怎么调用另外一个存储过程的结果集(mysql数据库)使用navicat写

时间:2022-04-20 14:05:35
BEGIN

DECLARE M,N INT;
SELECT S01,(I03+I04+I05+I12-I13)AS M FROM tk_zyxss;
SELECT S01,(I03*1.5+I04*3)AS N FROM tk_jszdyjs ;

END
这是我的代码
结果1                                      结果2
S01              M                         S01          N
2016       2606                      2016      27.0
2015       2453                      2015      25.5
2014       2711                      2014      37.5
2013       2461                      2013      33.5
2012       2427                      2012      45.0

我现在的想法是把结果1的M 与对应的结果2的值相加,得出一个总的结果

6 个解决方案

#1


两个查询  UNION 之后做个 SUM 就好了吧

select S01, sum(m)
from(
SELECT S01,(I03+I04+I05+I12-I13)AS M FROM tk_zyxss
union all
 SELECT S01,(I03*1.5+I04*3)AS N FROM tk_jszdyjs 
 ) x group by S01;

#2


你这个合并在一起了,可是sum(m)没有数据,为空

#3


只做 union all看看数据,是不是数据本身或者数据类型有问题

#4


只做union all  的话得到下面的结果
S01              M                    
2016       2606                     
2015       2453                     
2014       2711                      
2013       2461                     
2012       2427  
2016       27.0
2015       25.5
2014       37.5
2013       33.5
2012       45.0                                 

#5


DECLARE M,N INT;
这个惹的祸,你把这个去掉就好了,这两个变量实际上没有用到的,名称冲突了

#6


完美解决,谢谢啊

#1


两个查询  UNION 之后做个 SUM 就好了吧

select S01, sum(m)
from(
SELECT S01,(I03+I04+I05+I12-I13)AS M FROM tk_zyxss
union all
 SELECT S01,(I03*1.5+I04*3)AS N FROM tk_jszdyjs 
 ) x group by S01;

#2


你这个合并在一起了,可是sum(m)没有数据,为空

#3


只做 union all看看数据,是不是数据本身或者数据类型有问题

#4


只做union all  的话得到下面的结果
S01              M                    
2016       2606                     
2015       2453                     
2014       2711                      
2013       2461                     
2012       2427  
2016       27.0
2015       25.5
2014       37.5
2013       33.5
2012       45.0                                 

#5


DECLARE M,N INT;
这个惹的祸,你把这个去掉就好了,这两个变量实际上没有用到的,名称冲突了

#6


完美解决,谢谢啊