zoukankan      html  css  js  c++  java
  • MySQL 游标使用 多字段

    CREATE DEFINER=`root`@`localhost` FUNCTION `FUN_FIX_RECEIPT_CONTENT_PAYMENT`(accountStartDay varchar(10), accountEndDay varchar(10)) RETURNS int(11)
    BEGIN
            #解析原始小票前 删除解析小票
            #shopsId 商家ID
            #accountDay 10位日期 2018-01-09
            -- 定义一个或者多个 变量来接收 游标查询的列值
            DECLARE receiptContentId INT;  
            DECLARE payFlag VARCHAR(30);
            DECLARE cashAmount DOUBLE;
            DECLARE cardAmount DOUBLE;
            DECLARE scoreAmount DOUBLE;
            DECLARE thirdAmount DOUBLE;
            DECLARE alpayAmount DOUBLE;
            DECLARE wechatAmount DOUBLE;
            DECLARE otherAmount DOUBLE;
            
            
            -- 遍历数据结束标志
            DECLARE done INT DEFAULT FALSE;
            -- 游标内容
            DECLARE cursor_receipt_content CURSOR FOR select id, pay_flag, cash_price, card_price, score_price, third_party_price, alipay_price, wechat_price, other_price from t_shopping_receipt_content where 
                grasping_time >= STR_TO_DATE(CONCAT(accountStartDay,' 00:00:00'), '%Y-%m-%d %H:%i:%s')
                and grasping_time <= STR_TO_DATE(CONCAT(accountEndDay,' 23:59:59'), '%Y-%m-%d %H:%i:%s');
        -- 将结束标志绑定到游标
            DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;  
            
            -- 打开游标
            OPEN cursor_receipt_content;   
        r_loop: LOOP  
                        -- 提取游标里的数据,这里只有一个,多个用","逗号隔开
                        FETCH cursor_receipt_content INTO receiptContentId, payFlag, cashAmount, cardAmount, scoreAmount, thirdAmount, alpayAmount, wechatAmount, otherAmount;
                        IF done THEN  
                                LEAVE r_loop; 
                        END IF;
                        
                        -- 这里做你想做的循环的事件
                        if locate('现金',payFlag) > 0 then
                            INSERT INTO t_receipt_content_payment(receipt_content_id, payment_category_id, amount) VALUES(receiptContentId, 1 , cashAmount);
                        end if;
                        
                        if locate('刷卡',payFlag) > 0 then
                            INSERT INTO t_receipt_content_payment(receipt_content_id, payment_category_id, amount) VALUES(receiptContentId, 2 , cardAmount);
                        end if;
                        
                        if locate('积分',payFlag) > 0 then
                            INSERT INTO t_receipt_content_payment(receipt_content_id, payment_category_id, amount) VALUES(receiptContentId, 3 , scoreAmount);
                        end if;
                        
                        if locate('第三方',payFlag) > 0 then
                            INSERT INTO t_receipt_content_payment(receipt_content_id, payment_category_id, amount) VALUES(receiptContentId, 4 , thirdAmount);
                        end if;
                        
                        if locate('支付宝',payFlag) > 0 then
                            INSERT INTO t_receipt_content_payment(receipt_content_id, payment_category_id, amount) VALUES(receiptContentId, 5 , alpayAmount);
                        end if;
                        
                        if locate('微信',payFlag) > 0 then
                            INSERT INTO t_receipt_content_payment(receipt_content_id, payment_category_id, amount) VALUES(receiptContentId, 6 , wechatAmount);
                        end if;
                        
                        if locate('其他',payFlag) > 0 then
                            INSERT INTO t_receipt_content_payment(receipt_content_id, payment_category_id, amount) VALUES(receiptContentId, 7 , otherAmount);
                        end if;
        END LOOP r_loop;
            -- 关闭游标
        CLOSE cursor_receipt_content; 
        RETURN 0;
    END
  • 相关阅读:
    Tensorflow
    EM算法
    神经网络 CNN
    神经网络总结(tensorflow)
    Chrome扩展程序和油猴推荐
    机器学习(贝叶斯,K-means,ROC,AUC)
    机器学习随笔(决策树,集成算法,交叉验证)
    机器学习随笔(线性回归,逻辑回归原理)
    @PropertySource加载文件的两种用法以及配置文件加载顺序
    JNDI(Java Naming and Directory Interface )
  • 原文地址:https://www.cnblogs.com/eason-d/p/10811606.html
Copyright © 2011-2022 走看看