`

MySQL实现统计数据并插入数据的存储过程

阅读更多
统计存储过程,这里是将统计的结果插入一个表中,后台可以有定时任务来调此存储过程。以下业务是统计仓库中商品流转情况,包括:日期、商品总数、入库数量、出库数量。
BEGIN
  DECLARE ES_COR_CODE VARCHAR(20);
 -- 需要定义接收游标数据的变量 
  DECLARE table_ VARCHAR(50);
  -- 遍历数据结束标志
  DECLARE done INT DEFAULT FALSE;
  -- 游标
  DECLARE cur CURSOR FOR SELECT TABLE_NAME FROM (SELECT TABLE_NAME from information_schema.tables WHERE TABLE_NAME LIKE '%wm_item_transfer_%' AND TABLE_SCHEMA='wmscloud_test' ) allTables;
  -- 将结束标志绑定到游标
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
  -- 打开游标
  OPEN cur;
   -- 开始循环
  read_loop: LOOP

  -- 提取游标里的数据,这里只有一个,多个的话也一样;
  FETCH cur INTO table_;
  -- 声明结束的时候
  IF done THEN

    LEAVE read_loop;

  END IF;

  SET ES_COR_CODE=substring(table_,18);

  
SET @INSERT_ITEM_TRANSFER=CONCAT('INSERT INTO wm_item_transfer_',ES_COR_CODE,' (WMIT_DATE,WMIT_STOCK_NUM,WMIT_INTO_ITEM_NUM,WMIT_OUT_ITEM_NUM) 

 SELECT 

(SELECT date_sub(curdate(),interval 1 day) ) WMIT_DATE ,

(SELECT IFNULL(SUM(WMST_NOW_NUMBER),0) FROM wm_stock_',ES_COR_CODE,') WMIT_STOCK_NUM,

(SELECT IFNULL(SUM(WMST_NOW_NUMBER),0) FROM wm_stock_',ES_COR_CODE,' WHERE   WMST_RECEIVE_DATE BETWEEN date_sub(curdate(),interval 1 day) AND NOW() ) WMIT_INTO_ITEM_NUM,

(SELECT IFNULL(SUM(WMOO_OUT_NUMBER),0)  FROM wm_out_order_',ES_COR_CODE,' where SURE_DATE BETWEEN date_sub(curdate(),interval 1 day) AND NOW() ) WMIT_OUT_ITEM_NUM');

PREPARE INSERT_ITEM_TRANSFER FROM @INSERT_ITEM_TRANSFER;

EXECUTE INSERT_ITEM_TRANSFER;

  END LOOP;
  -- 关闭游标
  CLOSE cur;


END
分享到:
评论

相关推荐

    (mysql面试题)MySQL中的存储过程和触发器的概念及其作用及代码展示.txt

    解释: - 在上述代码中,我们首先使用`CREATE PROCEDURE`命令创建一个...触发器的功能是统计新插入学生的数量,并调用`GetStudentCountByGrade`存储过程获取对应年级的学生数量,最后更新`statistics`表中的统计数据。

    MySQL命令大全

    MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    MySQL 5权威指南(第3版) 中文版 下载地址

     15.6 向关联数据表插入新数据记录  15.7 处理来自HTML表单的输入数据  15.8 分页显示查询结果  15.9 处理层次化数据  15.10 速度优化  15.11 Unicode  15.12 二进制数据(BLOB)和图像  15.13 存储...

    3天从零快速搭建BI商业大数据分析平台视频教程

    1,零基础讲解,从数据存储到商业可视化分析,一步步逐渐深入 2,理论+实践,让你既能学懂也能学会 3,图文并茂,化繁为简,让知识通俗易懂,不再抽象 4,以实际企业业务需求讲解,让学生学有所用,学完即可上手BI ...

    MySQL 5.1中文手冊

    14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面...

    MySQL5 权威指南第3版中文版_part1

     15.6 向关联数据表插入新数据记录  15.7 处理来自HTML表单的输入数据  15.8 分页显示查询结果  15.9 处理层次化数据  15.10 速度优化  15.11 Unicode  15.12 二进制数据(BLOB)和图像  15.13 存储过程  ...

    1.简单的定时在数据库添加数据 2.简单的Stream的使用 3.Excel使用jxl和poi框架的读取操作

    1、获取每一个班级的学生信息并打印输出, 使用map的方式存储 2、输出学生中java 前三名,Linux前三名,总成绩前三名(不考虑相同 允许有相同) 3、统计每个班级的人数 以及总人数 每个班级的男女各多少入 4、将从...

    MySQL 5.1参考手册

    14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面...

    MySQL 5.1官方简体中文参考手册

    7.4.7. MyISAM索引统计集合 7.4.8. MySQL如何计算打开的表 7.4.9. MySQL如何打开和关闭表 7.4.10. 在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 ...

    PHP+Mysql+jQuery文件下载次数统计实例讲解

    本实例需要读者具备PHP、Mysql、jQuery以及html、css等相关的基本知识,在开发示例前,需要准备Mysql数据表,本文假设有一张文件下载表downloads,用来记录文件名、保存在文件服务器上的文件名以及下载次数。...

    mysql数据库的基本操作语法

    MySQL中外键的table的外键引用列可以插入数据可以为null,不参照主表的数据。 使用子查询插入数据 insert into temp(name) select name from classes; 多行插入 insert into temp values(null, ‘jack’, 22), ...

    MySQL 5.1参考手册中文版

    7.4.7. MyISAM索引统计集合 7.4.8. MySQL如何计算打开的表 7.4.9. MySQL如何打开和关闭表 7.4.10. 在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器...

    MySQL 5.1参考手册 (中文版)

    14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面...

    mysql5.1中文手册

    MyISAM索引统计集合 7.4.8. MySQL如何计算打开的表 7.4.9. MySQL如何打开和关闭表 7.4.10. 在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. ...

    统计过程控制(SPC)系统的php代码

    1. 每次保存数据后,自动得出当前CPK、平均值。 2. 只需点击“实时X-R图”、“实时柱形图”就可以快速查看当班的X-R图、柱形图(图中会显示当班的CP、CPK、PP、PPK、平均值、标准偏差) 3. 每次输入时,只需选择线别...

    PHP和MySQL Web开发第4版pdf以及源码

    10.2 在数据库中插入数据 10.3 从数据库中获取数据 10.3.1 获取满足特定条件的数据 10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询...

    MYSQL中文手册

    7.4.7. MyISAM索引统计集合 7.4.8. MySQL如何计算打开的表 7.4.9. MySQL如何打开和关闭表 7.4.10. 在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节...

    PHP和MySQL WEB开发(第4版)

    10.2 在数据库中插入数据 10.3 从数据库中获取数据 10.3.1 获取满足特定条件的数据 10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询 10.4 ...

    MYSQL常用命令大全

    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

Global site tag (gtag.js) - Google Analytics