MYSQL过程中的游标问题

时间:2018-08-14 18:27:50

标签: mysql

以下过程几乎可以正常运行,只有一个例外。第一个选择返回两个记录。但是,在循环中,它会构建三种情况,好像它进行了三遍一样。无法解决。我看不到的明显的东西。

DECLARE DTE DATE;
DECLARE EXIT_LOOP BOOLEAN;
DECLARE DATECURSOR CURSOR FOR

SELECT DISTINCT DATE
FROM SCHEDULE
WHERE BKFST > 0;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET EXIT_LOOP = TRUE;

OPEN DATECURSOR;

SET @s = '';

DATE_LOOP: LOOP

        FETCH DATECURSOR INTO DTE;

        SET @s = CONCAT(@s,CONCAT('SUM(CASE WHEN SCHEDULE.DATE =', "'", DTE, "'", ' THEN SCHEDULE.', _TYPE,' END) AS ', "'", DTE ,"', "));

        IF EXIT_LOOP THEN
         CLOSE DATECURSOR;
         LEAVE DATE_LOOP;
        END IF;


END LOOP DATE_LOOP;

SET @s = TRIM(trailing ', ' from @s);

SET @q = CONCAT('SELECT MOW_ID, FUNDING, ',@s,' FROM SCHEDULE GROUP BY MOW_ID, FUNDING');

SELECT @q;

PREPARE stmt1 FROM @q;
EXECUTE stmt1;
commit;
DEALLOCATE PREPARE stmt1;

0 个答案:

没有答案
相关问题