首页 > 数据库技术 > 详细

mysql 循环

时间:2019-04-15 16:46:46      阅读:127      评论:0      收藏:0      [点我收藏+]
BEGIN
    DECLARE postUuid VARCHAR(40);
    DECLARE post VARCHAR(40);
        SELECT
        t2.user_id INTO postUuid
        FROM (
            SELECT
                IF(e.post_user_id IS NULL, d.user_uuid, e.post_user_id) AS user_uuid
            FROM (
                SELECT
                    b.uuid AS reception_uuid
                FROM (
                        SELECT
                            b.biz_id
                        FROM
                            bpm_process_instance a
                        INNER JOIN biz_factoring_reception b ON a.biz_uuid = b.uuid
                        AND b.sys_status = 1
                        WHERE
                            a.sys_status = 1
                        AND a.instance_id = instanceId
                ) t
                INNER JOIN biz_factoring_reception b ON t.biz_id = b.biz_id
                AND b.sys_status = 1
                WHERE b.receive_file_type = 0
                ORDER BY b.receive_no ASC
                LIMIT 1
            ) a
            INNER JOIN bpm_process_instance b ON a.reception_uuid = b.biz_uuid
            AND b.sys_status = 1
            INNER JOIN bpm_activity c ON b.instance_id = c.instance_id
            AND c.ACTIVITY_ID = o_42
            AND c.sys_status = 1
            INNER JOIN bpm_task_user d ON c.task_id = d.task_id
            AND d.sys_status = 1
            LEFT JOIN biz_post_assign_info e ON d.user_uuid = e.leave_user_id
            AND e.post_start_date <= 2019-04-01
            AND e.post_end_date >= 2019-04-01
            AND e.sys_status = 1
        ) t1 
        INNER JOIN sys_user t2 ON t1.user_uuid = t2.uuid
        AND t2.sys_status = 1;
        IF postUuid IS NOT NULL THEN
            SET post = postUuid;
            SELECT 
                IF (
                    COUNT(a.post_user_id)!=1,
                    flag,
                    a.post_user_id
                ) INTO post
                FROM biz_post_assign_info a,sys_user b
                WHERE 
                    a.post_start_date <= 2019-04-01
                AND a.post_end_date >= 2019-04-01
                AND a.leave_user_id = b.uuid
                AND b.user_id = post
                AND a.sys_status = 1
                AND b.sys_status = 1;
            IF post != flag THEN
                REPEAT
                    SELECT
                    IF (
                        COUNT(post_user_id) != 1,
                        flag,
                        post_user_id
                    ) INTO post
                    FROM
                        biz_post_assign_info
                    WHERE
                        post_start_date <= 2019-04-01
                    AND post_end_date >= 2019-04-01
                    AND leave_user_id = post;
                        IF post != flag THEN
                        SET postUuid = post;
                        END IF;
                UNTIL post = flag
                END REPEAT;
                SELECT user_id INTO postUuid FROM sys_user WHERE uuid = postUuid;
            END IF;
        END IF;
    RETURN postUuid;
END

 

mysql 循环

原文:https://www.cnblogs.com/xiaowoniulx/p/10711253.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!