0
別のクエリから計算されたフィルタの配列に基づいてテーブルからデータを選択しようとしています。私は以下の疑似コードで を達成しようとしていることを説明しようとしました。Oracleストアドプロシージャのviaループを選択
SELECT Equipment, MIN(TIME) as FractionStart, MAX(TIME) as FractionEnd
INTO FRACTIONS
FROM DATA
WHERE ID = 1
GROUP BY (Equipment)
/* Pseudo code */
FOR EACH ROW IN FRACTIONS
INSERT INTO MYTABLE (SELECT * FROM EVENTTABLE WHERE EVTTIME BETWEEN ROW.FractionStart AND ROW.FractionEnd AND EVTAREA = ROW.Equipment);
FOR NEXT;
RETURN MYTABLE;
私はカーソルを見てきたが、私はループ内でそれらの行を追加する方法を考え出したていません。正しい機能を見ていますか?またはこれを解決する良い方法がありますか?
ありがとうございます!それはとてもシンプルだったので、私はそれがどのように機能するのか分かりません。 (where句はDATAテーブルの結果の各行に対してどのように呼び出されますか)。それはトリックを行うように見えます。 – user2536967
FRACTIONSのselectカーソルは、代わりに副選択によって表されます(言い換えれば、メモリ内のテーブルになります)。次にwhere条件によってイベントテーブルに結合されます。インサートの外側で実行して、何をしているのかを見ることができます。 –