CREATE PROCEDURE `sp_UpdateData`()
BEGIN
DECLARE v_card_id VARCHAR(50);
/*修改会员卡的几个金额*/
DECLARE done INT DEFAULT FALSE;
DECLARE cur CURSOR FOR
SELECT main.card_id FROM mem_card main
INNER JOIN mem_card_extend b ON main.card_id=b.card_id
WHERE main.status_code=1 AND b.status_code=1
AND main.sale_status=2
GROUP BY main.card_id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO v_card_id;
IF done THEN
LEAVE read_loop;
END IF;
UPDATE mem_card_extend a SET total_fill_self_money=IFNULL((SELECT SUM(adjust_money) FROM mem_card_money_flow f WHERE (money_operate_type=2 OR money_operate_type=4) AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计充值本金
UPDATE mem_card_extend a SET total_fill_give_money=IFNULL((SELECT SUM(adjust_give_money) FROM mem_card_money_flow f WHERE money_operate_type=4 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计充值赠送
UPDATE mem_card_extend a SET total_adjust_self_money=IFNULL((SELECT SUM(adjust_money) FROM mem_card_money_flow f WHERE money_operate_type=3 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计调整本金
UPDATE mem_card_extend a SET total_adjust_give_money=IFNULL((SELECT SUM(adjust_give_money) FROM mem_card_money_flow f WHERE money_operate_type=3 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计调整赠送
UPDATE mem_card_extend a SET total_score_fill_self_money=IFNULL((SELECT SUM(adjust_money) FROM mem_card_money_flow f WHERE money_operate_type=5 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计积分兑换本金
UPDATE mem_card_extend a SET total_score_fill_give_money=IFNULL((SELECT SUM(adjust_give_money) FROM mem_card_money_flow f WHERE money_operate_type=5 AND status_code=1 AND f.card_id=v_card_id ),0) WHERE a.card_id=v_card_id; -- 累计积分兑换赠送
END LOOP;
CLOSE cur;
END$$

MYSQL游标使用的更多相关文章

  1. SqlServer和MySQL游标学习

    一 sqlserver游标使用 /*** 游标的使用  讲了这个多游标的优点,现在我们就亲自来揭开游标的神秘的面纱.  使用游标的顺序: 声名游标.打开游标.读取数据.关闭游标.删除游标. 1.3.1 ...

  2. MySQL游标操作指南

    本篇文章是对MySQL游标的具体使用进行了详细的分析介绍,需要的朋友参考下   测试表 level  代码如下: create table test.level (name varchar(20)); ...

  3. 个人笔记mysql游标

    经过测试,mysql游标是无法读取自定义函数计算的结构,mysql自带的函数计算值是可以读取的.

  4. MySQL游标的简单实践

    Q:为什么要使用游标? A: 在存储过程(或函数)中,如果某条select语句返回的结果集中只有1行,可以使用select into语句(上几篇博客有介绍到用法)来得到该行进行处理:如果结果集中有多行 ...

  5. mysql 游标 demo

    一.MySQL游标的概念 1.游标介绍 MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解. 有数据缓冲的思想:游标的设计是一种数据缓冲区的思想 ...

  6. [转]MySQL游标的使用

    转自:http://www.cnblogs.com/sk-net/archive/2011/09/07/2170224.html 以下的文章主要介绍的是MySQL游标的使用笔记,其可以用在存储过程的S ...

  7. Mysql 游标初识

    MySql 游标初识 认识 游标(cursor), 按字面意思可理解为, 游动的标识, 或者叫做"光标", 这样更容易理解. 就好比现有一张表存储了n行记录, 然后我想每次取出一行 ...

  8. MySQL 游标

    概述 本章节介绍使用游标来批量进行表操作,包括批量添加索引.批量添加字段等.如果对存储过程.变量定义.预处理还不是很熟悉先阅读我前面写过的关于这三个概念的文章,只有先了解了这三个概念才能更好的理解这篇 ...

  9. Mysql游标的简明写法

    -- cursor 游标/*declare 声明; declare 游标名 cursor for select_statement;open 找开; open 游标名fetch 取值; fetch 游 ...

  10. MySQL游标循环取出空值的BUG

    早上同事要我写个MySQL去除重复数据的SQL,想起来上次写过一篇MySQL去除重复数据的博客,使用导入导出加唯一索引实现的,但是那种方式对业务影响较大,所以重新写一个存储过程来删重复数据,这一写就写 ...

随机推荐

  1. android [因为开了刷机精灵等软件 导致adb 无法使用]error: could not install *smartsocket* listener: cannot bind

    今天 使用 刷机精灵后 在使用android studio 时发现 adb 无法正常使用.   于是 想重启 adb.exe , 直接在DOS里杀掉adb输入:adb kill-server 再启动输 ...

  2. iOS学习19之OC类的扩展

    为一个类扩展功能:1.子类化:2.修改源代码:3.定义协议:4.Category:类目 1.Category 1> Category的作用 Category:也叫分类,类目,是为没有源代码的类扩 ...

  3. 编译生成IOS开发使用的FFmpeg的过程

    前言:本篇随笔纯属是参照<iOS 使用 FFmpeg>的过程,本人自己操作了一遍,但是本人记性不好,觉得这样的过程可以记录在博客中,以后需要可以快速回头翻阅细节.所以特地参考<iOS ...

  4. 通过跳板机建立信任,对多个tomcat服务统一安装部署(shell编写)

    unifyDeploy 自动化统一安装部署 系统版本: unifyDeploy0.1 文件编号: 0.1 发布日期: 2014-06-26 编    制: WangYong 版权所有 内部资料注意保密 ...

  5. 2.1 CMMI2级——7个PA简述

    摘要: 阶段式的CMMI没有1级,最开始的级别就是2级.一个处于“无序化”生产的软件公司,要进行过程改进,首要是改进什么呢?2级告诉你,我们需要从计划.计划跟踪.需求管理.采购.度量.配置管理.质量保 ...

  6. Web Service 的工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  7. android中的万能适配器BaseAdapter的总结

    有时候,列表不光会用来做显示用,我们同样可以在在上面添加按钮.添加按钮首先要写一个有按钮的xml文件,然后自然会想到用上面的方法定义一个适配器,然后将数据映射到布局文件上.但是事实并非这样,因为按钮是 ...

  8. 遍历map的常用方法

    Map< String, String> map = new HashMap<String, String>();  map.put("a", " ...

  9. DGbroker主备切换

    1.检查DG是否正常 DGMGRL> show configuration; Configuration - dgc Protection Mode: MaxProtection Databas ...

  10. Java虚拟机 - 内存模型

    本文主要介绍Java虚拟机的内存分布以及对象的创建过程. 一.Java虚拟机的内存分布 文章开始前读者需要了解Java虚拟机的运行时数据区是怎样划分的.如下图所示: 1.程序计数器(Program C ...