zoukankan      html  css  js  c++  java
  • 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
    

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

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

          

  • 相关阅读:
    MongoDB 创建账户
    MongoDB高可用集群配置方案
    学习CEGUI亟待解决问题一:文本控件的格式问题
    第一讲
    ERP初阶(三):MRP基本原理
    ERP初阶(四):MRP基本构成
    学习CEGUI亟待解决问题二:消息事件传递机制问题
    Groovy处理null对象为空字符串
    silverlight与CSLA的快速应用05安装CslaExtension
    silverlight与CSLA的快速应用08客户端的CSLA代码
  • 原文地址:https://www.cnblogs.com/louby/p/9294773.html
Copyright © 2011-2022 走看看