3,491
社区成员
发帖
与我相关
我的任务
分享
--改了一下(不保证正确),自己调试一下
DECLARE
v_djid VARCHAR2(255);
v_dwid VARCHAR2(255);
v_je NUMBER(20, 8);
v_xde NUMBER(20, 8);
v_sumjine NUMBER(20, 8);
v_zjjine NUMBER(20, 8);
SOURCE CURSOR FOR
SELECT djid FROM a;
source1 CURSOR FOR
SELECT djid, je FROM tmp_fxb WHERE djid = djid ORDER BY dwid, djid;
BEGIN
OPEN SOURCE;
FETCH SOURCE
INTO v_djid;
WHILE SOURCE%FOUND LOOP
OPEN Source1;
FETCH Source1
INTO v_djid, v_je;
v_sumjine := v_je;
SELECT isnull(SUM(je), 0) INTO v_hjjine FROM t_djmx;
v_zjjine := v_sumjine + v_hjjine;
WHILE SOURCE1%FOUND LOOP
FETCH Source1
INTO v_djid, v_je;
IF v_zjjine <= v_xde THEN
INSERT INTO t_djmx (djid, je) VALUES (v_djid, v_je);
END IF;
END LOOP;
CLOSE Source1;
FETCH SOURCE
INTO v_djid;
END LOOP;
CLOSE SOURCE;
END;