1

select ステートメントをループするプロシージャから単一のデータセットを返したいと思います。私の特定のケースでは、2 つの日付の間の日付ごとに行ごとの値を取得しようとしています。

SET @end = DATE(NOW());
SET @start = DATE_ADD(NOW(),INTERVAL -3 MONTH);
SET @today = @start;

REPEAT
    SELECT a, (SELECT latest b value on @today) as b FROM table;
    @today = DATE_ADD(NOW(),INTERVAL +1 DAY);
UNTIL @today => @end END REPEAT;

proc にラップされて呼び出されると、ループごとに別のデータセットが返されます。すべての結果が「UNIONed」された単一のデータセットが必要です。

4

1 に答える 1

1

なぜだけではない....

SELECT * 
FROM `table` t
WHERE t.date BETWEEN DATE_ADD(NOW(),INTERVAL -3 MONTH) AND NOW()
ORDER BY t.date;
于 2012-08-01T12:49:38.713 に答える