mysql计算的存储过程

BEGIN 
  DECLARE  count1 INT;  
  DECLARE  min FLOAT;  
  DECLARE  b INT;  
  DECLARE  max FLOAT;  
  DECLARE  cname VARCHAR(500); 
  DECLARE  kcode VARCHAR(500); 
DECLARE qj1  VARCHAR(500);
DECLARE qj2  VARCHAR(500);
DECLARE qj3  VARCHAR(500);
DECLARE qj4  VARCHAR(500);
DECLARE qj5  VARCHAR(500);
  DECLARE temp1  FLOAT; /**/
DECLARE deft FLOAT;
  DECLARE zz1  INT;
  DECLARE zz2  INT;
  DECLARE zz3  INT;
  DECLARE zz4  INT;
  DECLARE zz5  INT;
  DECLARE vResult TINYINT;
  DECLARE allweek CURSOR FOR select count(t.code) as count1, min(t.weekMin) as minweek, max(t.weeKmax) as maxweek,t.code as code1,t.name as cname from Week t where t.weekMin>0 and t.weekMax>0 group by t.code ;   
declare continue handler for not found set b=1;
 delete from weekrestbackups where content = null or content = '';
insert into weekrestbackups  select * from weekreset;
    delete from weekreset  where 1=1;
open allweek;
repeat 
begin
FETCH allweek INTO count1, min, max, kcode,cname; 
/*select count1, min,max,kcode;*/
set temp1 = (max-min)/5;
select count(*) into zz1  from Week t where t.weekMin > min  and t.weekMin < (min+temp1) and t.code = kcode;
      set qj1 =CONCAT(min,'--',FORMAT((min+temp1),2),'(',zz1,'周)',FORMAT(zz1/count1*100,2),'%');


select count(*) into zz2  from Week t where t.weekMin >= (min+(temp1*1))  and t.weekMin < (min+temp1*2) and t.code = kcode;
 set qj2 =CONCAT(FORMAT(min+(temp1*1),2),'--',FORMAT((min+temp1*2),2),'(',zz2,'周)',FORMAT(zz2/count1*100,2),'%');


select count(*) into zz3  from Week t where t.weekMin >= (min+(temp1*2))  and t.weekMin < (min+temp1*3) and t.code = kcode;
 set qj3 =CONCAT(FORMAT(min+(temp1*2),2),'--',FORMAT((min+temp1*3),2),'(',zz3,'周)',FORMAT(zz3/count1*100,2),'%');


select count(*) into zz4  from Week t where t.weekMin >= (min+(temp1*3))  and t.weekMin < (min+temp1*4) and t.code = kcode;
 set qj4 =CONCAT(FORMAT(min+(temp1*3),2),'--',FORMAT((min+temp1*4),2),'(',zz4,'周)',FORMAT(zz4/count1*100,2),'%');


select count(*) into zz5  from Week t where t.weekMin >= (min+(temp1*4))  and t.weekMin <= (max) and t.code = kcode;
 set qj5 =CONCAT(FORMAT(min+(temp1*4),2),'--',max,'(',zz5,'周)',FORMAT(zz5/count1*100,2),'%');
/*select qj1,qj2,qj3,qj4,qj5,kcode,min,max,count1; */
set deft=0.00;
insert into weekreset(table_id,createTime,showTime,code,count,max,min,name,qj1,qj2,qj3,qj4,qj5) values(UUID(),UNIX_TIMESTAMP(),SYSDATE(),kcode,count1,max,min,cname,qj1,qj2,qj3,qj4,qj5);

end;
until b=1
end repeat;
close allweek;
END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值