mysql 存储过程 有数据修改 没数据插入
BEGIN
DECLARE sid INT(10) DEFAULT 0;
DECLARE money INT(10) DEFAULT 0;
DECLARE row_count INT;
DECLARE done INT DEFAULT FALSE;#默认游标读出有记录
DECLARE cur_order CURSOR for
SELECT m.id,sum(o.price) money from ims_bj_shopn_order as o LEFT JOIN ims_bj_shopn_member as m on o.uid=m.id where o.status in ('1','2','3','6','7') and (m.isadmin=1 or m.id=m.staffid) and o.createtime BETWEEN 1514736000 and 1546271999 GROUP BY o.uid ORDER BY money desc;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;-- 绑定控制变量到游标,游标循环结束自动转true
#select cur_order;
open cur_order;-- 打开游标
myLoop:LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到
FETCH cur_order INTO sid,money; -- 将游标当前读取行的数据顺序赋予自定义变量
IF done THEN -- 判断是否继续循环
LEAVE myLoop; -- 结束循环
END IF;
-- 自己要做的事情,在 sql 中直接使用自定义变量即可
SELECT count(*) INTO row_count from think_purchase_amount where sellerid=sid;
IF (row_count=0) THEN
INSERT INTO think_purchase_amount(sellerid,count,year) VALUES(sid,money,2018);
ELSE
UPDATE think_purchase_amount SET count=count+money,year=2018 WHERE sellerid=sid;
END IF;
END LOOP myLoop;-- 结束自定义循环体
CLOSE cur_order;-- 关闭游标
END
mysql 存储过程 有数据修改 没数据插入的更多相关文章
- SQL语句(十六)实现集合运算、对数据修改、数据表复制
(一).集合运算(交.并.补) --(1)Union 并运算 select Sname from Student UNION select Tname From Teacher --(2)INTERS ...
- nodejs 通过 get获取数据修改redis数据
如下代码是没有报错的正确代码 我通过https获取到数据 想用redis set一个键值存储 现在我掉入了回调陷阱res.on 里面接收到的数据是data 里面如果放入 client.on('conn ...
- mysql存储过程嵌套循环并分页处理数据
业务背景:公司存证产品升级,随着数据量的增加,存证产品线按业务分表,导致以往的存证关联数据需要做数据同步更新.版本发布前,通过当前存储过程解决数据升级问题. ##创建存证文档关联情况下更新所用存储过程 ...
- 报表统计——java实现查询某年某月每天数据,没数据补0
一般图表绘制例如echarts等,返回数据格式都大同小异.重点是利用sql或者java实现数据格式的转型,接下来是关键部分: 1.前提:提供的工具方法——获取某月有多少天 //通过年份和月份确定该月的 ...
- MySQL 关联表批量修改(数据同步)
update table1 t1 ,table2 t2 set t1.field1 = t2.field2 where t1.id = t2.id
- SQL语句汇总(二)——数据修改、数据查询
首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>) ...
- SQL语句汇总(二)——数据修改、数据查询
SQL语句第二篇,不说废话直接开始吧. 首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VA ...
- SQL语句汇总——数据修改、数据查询
首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>) ...
- 报表统计——java实现查询某年12个月数据,没数据补0
一般图表绘制例如echarts等,返回数据格式都大同小异.重点是利用sql或者java实现数据格式的转型,接下来是关键部分: 1.mapper层sql语句,返回统计好的月份与对应月份的数据. < ...
随机推荐
- swift - 闭包 -定义和使用
方法一: 1.定义 typealias OpenOrderSuccessResultBlock = ( _ dataArray:[String])->Void 2.类方法实现属性 var bac ...
- ES6对象
--------------------------------------------------------------------- 对象的扩展 let obj = {a: 1, b: 2, c ...
- 运行PL-SVO(单目)
代码:https://github.com/rubengooj/pl-svo 1.Prerequisites and dependencies (1)SVO 安装SVO,with ROS:https: ...
- go语言log包的学习(log,Logger)
package main; import ( "log" "os" "time" "fmt" ) func main() ...
- WebAPI支持Session
1.在App_Start/WebApiConfig.cs中建立建立HttpControllerHandler和HttpControllerRouteHandler 并覆写它: public class ...
- JavaScript 练习题
练习题 1. 使用for循环输出1到50的值,要求每次循环只能输出一个值,每输出十个换一行. 2 日历生成器: 要求 用户输入,这个月有多少天,本月1号是星期几,自动生成日历 3. 表格生成器 4. ...
- dev accordionControl panelcontorl 使用
对于dev的窗体布局我想更系统的专业的学学,不是评自己以往 的经验去做, 所以我看了dev的demo 里边的例子,封装的很严实,还有他们自己重新做的控件,无法直接使用, 关键的控件也上了锁,可能也是保 ...
- 关于sortedlist 中值的添加,删除,索引测试.
SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问. 排序列表是数组和哈希表的组合.它包含一个可使用键或索引访问各项的列表.如果您使用索引访问各项,则它是一个 ...
- org.apache.commons.net.ftp
org.apache.commons.NET.ftp Class FTPClient类FTPClient java.lang.Object Java.lang.Object继承 org.apache. ...
- ajax写用户注册
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...