【发布时间】:2017-02-26 05:22:52
【问题描述】:
我需要循环内的 sum 值。
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 的值
这就是为什么我需要在循环内计算它。
【问题讨论】:
-
它应该在
SQL本身中被获取,否则,运行循环两次,首先计算SUM并将结果集存储到一个集合中。稍后,打印遍历集合的结果。