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



版权声明:本文为weixin_35720035原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_35720035/article/details/113303437