• mysql 存储过程


    CREATE DEFINER=`root`@`%` PROCEDURE `proc_get_penaltyMonthDealNoDeal`(IN `yeartmp` int)
    BEGIN
    -- =============================================
    -- Author:  作者 
    -- Create date: 创建时间
    -- Description: 描述
    -- =============================================
    	declare i int default 0;
    	declare	monthtmp varchar(2);
    	declare	yearFirstDay varchar(150) default NULL;
    	declare	yearLastDay varchar(150)  default null;
    	declare	totalnumcount int  default 0;-- 总的违章数量
    	declare	dealnumcount  int  default 0; -- 已处理违章数量
    					
      set i = 1;	-- 标量为0第一个月
    	
    	-- 创建车辆录入类型临时表	
    	drop table if exists tmp1;
    	create TEMPORARY table tmp1
    	(
    		`month` int(2),
    		`totalnum` int(10),	-- 总的违章数量
    		`dealnum` int(10)	-- 已处理违章数量
    	);
    	-- 循环查询12个月的数据
    	while i <= 12 do
    		set monthtmp=i;
    		set totalnumcount=0,dealnumcount=0;
    		if (LENGTH(monthtmp) = 1) then
    			set monthtmp='0'+monthtmp;
    		end if;
    	-- select  yeartmp,monthtmp;
    		-- 取得某年某月的第一天
    		set yearFirstDay=concat(yeartmp,'-' , monthtmp,'-01 00:00:00');
    		-- set	yearFirstDay= str_to_date(CONCAT(date_format(yeartmp+'-'+monthtmp,'%Y-%m-%d') ,' 15:11:11' ),'%Y-%m-%d %T') 
    		
    		-- select yearFirstDay;
    
    		-- 取得某年某月的最后一天
         set  yearLastDay=concat(last_day(yearFirstDay), ' 23:59:59');
    	
    		
    		-- 取得总的违章数量
    		set totalnumcount=(select COUNT(*) from jt_penalty where isundo <> 0 and  illegaltime <= date_format(yearLastDay ,'%Y-%m-%d %T')) ;
    		
    		-- 取得至今这个月已处理违章数量
    		set dealnumcount=( select  COUNT(*)  from jt_penalty where isundo <> 0 and illegaltime <= date_format(yearLastDay ,'%Y-%m-%d %T') and isOver in('1','2','3','4'));
    
    		-- 插入临时表	
    		insert  tmp1 values(i,totalnumcount,dealnumcount);
    		-- 标量+1		
    		set i=i+1;
    	END WHILE;
    		-- select*from tmp1;
    		select `month`,`totalnum` as `count` ,`dealnum`  `count1` from tmp1;
    END
    

     注意避坑:变量名不能和表中的字段名称定义一样,否则查询结果会是变量值最后一次的结果。

    如此文对你有帮助,请打赏作者或推荐此文,在此多谢了~

          

  • 相关阅读:
    Vue.js——60分钟组件快速入门(下篇)三
    ASP.NET Core 中的 ORM 之 Dapper
    .Net Core中Dapper的使用详解
    .NetCore与Vue
    Vue 导入文件import、路径@和.的区别
    Git常见命令
    JVM垃圾回收补充知识点
    Java虚拟机垃圾回收(三): 7种垃圾收集器(转载)
    Java虚拟机垃圾回收(二) :垃圾回收算法(转载)
    Java虚拟机垃圾回收:基础点(转载)
  • 原文地址:https://www.cnblogs.com/louby/p/9294773.html
Copyright © 2020-2023  润新知