誰かが私を助けてくれますか?カーソルを書くのは簡単ですが、いつ変更されるかをテストする方法がわかりませんREFVAL
。これまでの私のカーソルは以下です。
カーソルは でグループ化できませんREFVAL
。その請求書の合計ボックスに追加する必要がある一連の請求書明細に基づいていると考えてください。
何かのようなもの:
REFVAL PAYAMNT INVOICE_DETAIL
12/00001/DA £420 Recurring fee
12/00001/DA £300 CRB check
12/00001/DA £170 Plate fee
12/00002/JV £70 SQL assistance
12/00002/JV £30 Loader assistance
そのため、カーソルを移動するとき、12/00001/DA
3 行までの詳細を書き、次に合計を書き、次に12/00001/DA (£890)
詳細を書き、12/00002/JV
次にその行の要約行を書くことができます。
したがって、スクリプトはいつREFVAL
変更されるかを知る必要があります。
私がこれまでに持っているものは次のとおりです。
DECLARE
CURSOR c1 IS
SELECT refval,amt from johan;
Grandtotal INTEGER := 0;
REF_total Integer := 0;
REFVAL varchar(20);
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO refval,ref_total;
IF c1%notfound THEN
EXIT;
END IF;
dbms_output.put_line('TOtal for '|| refval || ': ' || ref_total);
Grandtotal := Grandtotal + ref_total;
END LOOP;
IF c1%ISOPEN THEN -- cursor is open
CLOSE c1;
END IF;
dbms_output.put_line('Grandtotal: '||Grandtotal);
END;
/