loop 내부에 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의 합계를 얻는 방법을 알아 내야
편집 : 내가 합 전에 축적 또 하나 개의 변수가 있음을 잊어
*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
,617,그래서 루프 안에서 계산해야합니다.
은'SQL' 자체가, 두 번 루프를 실행, 그렇지 않은 경우, 먼저를 계산하기 위해 SUM을 호출하고 결과 집합을 컬렉션에 저장합니다. 나중에 컬렉션을 가로 지르는 결과를 인쇄하십시오. –