안녕하세요
제가 포인트 적립에 대한 테이블을 생성하려고 하는데...
우선 제가 만든거부터 보여드릴께요..
SQL> select * from save_table;
CO NUM NAME POINT
-- ---------- ---------------- ----------
01 2 주유 900
01 1 가스 1000
01 2 숙박 800
01 2 호프 700
여기서 num 2번의 포인트를 합산하면
SQL> select num, sum(point)
2 from save_table
3 where num = 2
4 group by num;
NUM SUM(POINT)
---------- ----------
2 2400
이렇게 되자나요...
제가 원하는건 이 합쳐진 point 2400점을 total_table에 num=2번에 save컬럼으로 자동 입력 가능하게 되게끔 트리거를 생성하려고 하는데요...
SQL> select * from total_table;
CO NUM SAVE USE
-- -------- -------- --------
01 1
01 2
제가 만들어본 트리거는
CREATE OR REPLACE TRIGGER point
AFTER
UPDATE OR DELETE OR INSERT ON save_table
FOR EACH ROW
BEGIN
IF UPDATING THEN
UPDATE total_table
SET save = (SELECT SUM(point) FROM save_table WHERE num = :OLD.num GROUP BY num)
WHERE num = :OLD.num
END IF;
IF DELETING THEN
UPDATE total_table
SET save = (SELECT SUM(point) FROM save_table WHERE num = :OLD.num GROUP BY num)
WHERE num = :OLD.num
END IF;
IF INSERTING THEN
INSERT INTO save_table(co,num,save)
SELECT :OLD.co, :OLD.num, (SELECT SUM(point) FROM save_table WHERE num = :OLD.num GROUP BY num)
END IF;
END;
/
제가 뭘 잘못했는지 자꾸 트리거 생성시 오류가 뜨네요...도움좀 부탁드립니다..^^제발요^^;;