zoukankan      html  css  js  c++  java
  • 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');

  • 相关阅读:
    SAP Spartacus 自定义Popover指令,如何实现弹出对话框自动关闭功能
    SAP Spartacus B2B 页面信息提示图标的弹出窗口显示实现逻辑
    一个好用的 SAP UI5 本地打包(build)工具,自动生成Component-preload.js
    什么是 SAP UI5 的 Component-preload.js, 什么是Minification和Ugification
    云小课 | 一个三分钟快速定制OCR应用的神器,要不?
    JavaScript实现:如何写出漂亮的条件表达式
    想做测试工程师,这7件事你必须先知道
    比物理线程都好用的C++20的协程,你会用吗?
    解读 SSDB、LevelDB 和 RocksDB 到 GaussDB(for Redis) 的迁移
    数据中心太耗电,送你一个节能神器
  • 原文地址:https://www.cnblogs.com/zh1989/p/4381006.html
Copyright © 2011-2022 走看看