MySQl 存储过程+游标
DROP PROCEDURE IF exists pro_Insertflightplan_stat;
create procedure pro_Insertflightplan_stat(execdate varchar(10))
begin
declare c varchar(10);
declare s varchar(10);
declare b int default 0; /*是否达到记录的末尾控制变量*/
DECLARE cur_1 CURSOR FOR SELECT distinct t.companyICAO,ScheduleDate from flightplanlibarary_arch t where ScheduleDate = execdate;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
OPEN cur_1;
FETCH cur_1 INTO c, s; /*获取第一条记录*/
SET b = 2;
SELECT execdate;
while b<>1 do
SELECT @coumunber:=ttt.count as count,@checkat:=ttt.checkedstate as checkedstate /*变量赋值*/
FROM (
(SELECT COUNT(*) as count,checkedstate
from flightplan_today where EXECDATE= execdate and CHECKEDSTATE in ('0','1','2','3') and companyICAO like c GROUP BY checkedstate )
UNION
(SELECT COUNT(*) as count,'4' as checkedstate FROM flightplanlibarary_arch WHERE id NOT IN (SELECT n.id FROM flightplan_today m INNER JOIN flightplanlibarary n ON m.flightid=n.flightid AND m. depap =n.depap AND m.execdate=n.ScheduleDate AND m.execdate= execdate) and scheduledate= execdate and companyICAO like c )) ttt;
IF @checkat=0
THEN
insert into flightplan_stat (unifynum,nounifynum,submitnum,nosubmitnum,unconfirm,execdate,userICAO) VALUES(@coumunber,0,0,0,0,s,c);
ELSEIF @checkat = 1
THEN
insert into flightplan_stat (unifynum,nounifynum,submitnum,nosubmitnum,unconfirm,execdate,userICAO) VALUES(0,@coumunber,0,0,0,s,c);
ELSEIF @checkat = 2
THEN
insert into flightplan_stat (unifynum,nounifynum,submitnum,nosubmitnum,unconfirm,execdate,userICAO) VALUES(0,0,@coumunber,0,0,s,c);
ELSEIF @checkat = 4
THEN
insert into flightplan_stat (unifynum,nounifynum,submitnum,nosubmitnum,unconfirm,execdate,userICAO) VALUES(0,0,0,@coumunber,0,s,c);
ELSEIF @checkat= 3
THEN
insert into flightplan_stat (unifynum,nounifynum,submitnum,nosubmitnum,unconfirm,execdate,userICAO) VALUES(0,0,0,0,@coumunber,s,c);
ELSE
insert into flightplan_stat (unifynum,nounifynum,submitnum,nosubmitnum,unconfirm,execdate,userICAO) VALUES(0,0,0,0,0,s,c);
END IF;
FETCH cur_1 INTO c, s; /*取下一条记录*/
end while;
close cur_1;
end;
#call pro_Insertflightplan_stat('20150331');
MySQl 存储过程+游标的更多相关文章
- MySQL存储过程 游标
MySQL存储过程 游标 如何在存储过程中使用MySQL游标来遍历SELECT语句返回的结果集 MySQL游标简介 要处理存储过程中的结果集,请使用游标.游标允许您迭代查询返回的一组行,并相应地处理 ...
- mysql存储过程游标嵌套循环
自己写的一个mysql存储过程如下: BEGIN DECLARE _did bigint(20);DECLARE _count int;DECLARE s1 int;DECLARE cur_1 CUR ...
- MySQL 存储过程/游标/事务
将会用到的几个表 mysql> DESC products; +------------+--------------+------+-----+---------+-------------- ...
- php调用mysql存储过程游标
<?php $dbtype = 'mysql'; $host = 'localhost'; $dbname = 'test'; $dsn = "$dbtype:host=$host;d ...
- mysql存储过程游标加计划任务事件调度器
存储过程加事件调度器 -- 存储过程 (多个)游标的使用 临时表的使用(让执行时间从一个小时降低到5分钟)DELIMITER $$ DROP PROCEDURE IF EXISTS `eval_cal ...
- mysql 存储过程 游标嵌套
基本表temp 包括 name, type, sendCity, getCity 分别对应物流送货司机名, 倒车的第几段, 发货城市, 收货城市 表结构 -- -------------------- ...
- MySQL 存储过程游标
一.创建游标 游标用declare语句创建.如下面的例子所示: create procedure test2() begin declare cursorTest cursor for select ...
- mysql存储过程 --游标的使用 取每行记录 (多字段)
delimiter $ create PROCEDURE phoneDeal() BEGIN DECLARE id varchar(64); -- id DECLARE phone1 varchar( ...
- mysql 存储过程 -- 游标的使用(备忘)
BEGIN ; DECLARE f_ratio FLOAT DEFAULT 0.8; ); ); DECLARE i_statDate DATE; DECLARE i_accumulateCount ...
- mysql 存储过程 游标的使用 与定义
1.游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作:游标有下面这些属性: a.游标是只读的,也就是不能更新它: b.游标是不能滚动的,也就是只能在一个方向上进 ...
随机推荐
- poj 3487 稳定婚姻
/** 稳定婚姻:男生不停的求婚,女生不停地拒绝 **/ #include <iostream> #include <queue> #include <cstdio> ...
- 用while判断输入的数字是否回文数
/* Name:用while判断输入的数字是否回文数 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月18日 04:29:07 Description:用 ...
- 依赖注入(DI)和控制反转(IOC)
依赖注入(DI)和控制反转(IOC) 0X1 什么是依赖注入 依赖注入(Dependency Injection),是这样一个过程:某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只 ...
- 教你看懂C++类库函数定义之三---_stdcall
一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:h ...
- CCNA实验(9) -- Frame Relay
帧中继的一些特点:1.中小企业常用的广域网线路2.通信费用较低3.配置较为复杂 1.将Cisco路由器配置为帧中继交换机2.帧中继基本配置.帧中继映射3.在帧中继的链路上运行RIPv24.帧中继的多点 ...
- HDU 5818 Joint Stacks(左偏树)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5818 [题目大意] 给出两个栈A B(初始时为空),有三种操作: push.pop.merge. ...
- orcale装完sqldevelop启动不了
一直在搞考试,昨天考java企业级开发要交项目搞得我装系统后又装了个orcale,每次重新配百度太麻烦,还好记得点,记录下碰到的错误 64位的系统下的orcale11 64位里面的sqldevelop ...
- 化简复杂逻辑,编写紧凑的if条件语句(二):依据if子句顺序化简条件
<化简复杂逻辑,编写紧凑的if条件语句>已经得出了跳.等.飞.异常的各自条件,方便起见这里重新贴一下. 立即跃迁:!a && b && d 等待跃迁:!a ...
- Git库文件的状态
git库所在的文件夹(即.git所在的文件夹)中的文件的状态: (1)untracked:未跟踪,此文件在文件夹中,但并没有加入git库,不参与版本控制. 通过”git add”,”git commi ...
- Ubuntu Git安装
Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.通过使用git工具,我们可以实现团队间合作开发统一管理,可以从远程仓库中提取代码,也可以把代码上传到远程仓库,从而实现 ...