Mysql 游标+临时表 存储过程

CREATE DEFINER=`mycommcrm`@`%` PROCEDURE `insert_dispatch_contract_setp2`(in beginDate varchar(30))
BEGIN

  -- 合同号
  declare contractCode varchar(100) default '';	
  -- 开始时间
  DECLARE start_time  datetime DEFAULT now();  
     
-- 遍历数据结束标志
  declare ifEnd int  DEFAULT false;
  
    DECLARE jjl_contract_curs cursor for ( 
          -- 查询新增数据
          select contract_code from jjl_dispatch_contract  where update_date >=  STR_TO_DATE(beginDate,'%Y-%m-%d %H:%i:%s') 
       );  
       
-- 将结束标志绑定到游标
	 declare CONTINUE HANDLER FOR not found SET ifEnd = true;       
-- 打开游标     
open jjl_contract_curs;
  -- 循环   
  read_loop: LOOP
     -- 提取游标数据
      fetch jjl_contract_curs into contractCode;
      
     -- 判断游标是否结束
	 IF ifEnd THEN
		LEAVE read_loop;
	 END IF;
     
	   -- 主收费代码-临时变量赋值(业务逻辑)
       SELECT @primaryPayProject:=pay_serial_name FROM jjl_contract_pay_code 
		WHERE contract_code = contractCode A
        
      --  更新表
	   update jjl_dispatch_contract 
			set 
				primary_pay_project = @primaryPayProject,
                update_date = now()
        where contract_code = contractCode;
 
  -- 关闭循环		
  end Loop;
-- 关闭游标  
close jjl_contract_curs;


CREATE DEFINER=`huolilian`@`%` PROCEDURE `tempjt`(IN `uid` int)
BEGIN


set @uid = uid;
	
DROP TEMPORARY TABLE IF EXISTS tmp_strs;
CREATE TEMPORARY TABLE tmp_strs(ID int(11));
INSERT tmp_strs (ID) select inviter_id from users where `status`=1 and type=0 and id in (
                    select inviter_id from users where `status`=1 and type=0 and id=@uid
                );
	

-- select * from tmp_strs;
	
	
select sum(amount) c from user_energy_record where source_service_id in (6,7,11,39) and user_id in (
              select ID from tmp_strs
            ) and asset_source=@uid and `status`=1 and asset_change_type=0 GROUP BY user_id;
	
	

END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值