達成したいことに近づくこのトリガーがありますが、試してみてもまだ達成できません。
私がしたこと
CREATE or REPLACE TRIGGER TR_UPD_TEST_TABLE_B
AFTER INSERT ON TEST_TABLE_A
FOR EACH ROW
DECLARE
BEGIN
FOR VAL IN (SELECT * FROM TEST_TABLE_B A WHERE A.ID = :NEW.ID) LOOP
IF :NEW.QTY_RECEIVED > VAL.QTY_PRE_RECEIVED THEN
UPDATE TEST_TABLE_B A SET A.QTY_RECEIVED = 888 WHERE A.ID = :NEW.ID;
ELSE
UPDATE TEST_TABLE_B A SET A.QTY_RECEIVED = 111 WHERE A.ID = :NEW.ID;
END IF;
END LOOP;
END;
問題
を使っIF :NEW.QTY_RECEIVED > VAL.QTY_PRE_RECEIVED
て :NEW.QTY_RECEIVED を各レコードと比較したいのですが、すべてのレコードの数量を合計しているようです。ELSE
したがって、合計数量が よりも大きいため、ステートメントは常に にジャンプし:NEW.QTY_RECEIVED
ます。