私はループ内部でsumの値が必要です。(Oracle)ループ内の合計値を取得する方法は?
DECLARE
VAR_PCT NUMBER;
CURSOR C1 IS
SELECT A, B FROM TBL;
BEGIN
FOR REC1 IN C1
LOOP
--This where i need the value of sum(rec1.b) to calculate VAR_PCT:=(REC1.B/SUM(REC1.B))*100
DBMS_OUTPUT.PUT_LINE(REC1.A ||'|'|| REC1.B ||'|'||VAR_PCT)
END LOOP;
END;
だから、私は基本的にBの合計を取得する方法を見つけ出す必要があり
EDIT:私はサムまでに累積1以上の変数を持っていることを忘れてしまった
*FOR REC1 IN C1
LOOP*
VAR_X := VAR_X+REC1.B
*--This where i need the value of sum(rec1.b) to calculate VAR_PCT:=(REC1.B/SUM(REC1.B))*100
DBMS_OUTPUT.PUT_LINE(REC1.A ||'|'|| REC1.B ||'|'||VAR_PCT)
END LOOP;*
とVAR_PCTは(VAR_X/SUM(REC1.B))*の値である100
そのため、ループ内で計算する必要があります。
計算することが第一、そうでない場合には、二回ループを実行し、 'SQL'自体にフェッチされることになっています'SUM'を呼び出し、結果セットをコレクションに格納します。後で、コレクションを横断する結果を印刷します。 –