CREATE OR REPLACE TRIGGER "DISC_CLIENT"
BEFORE INSERT ON "PURCHASE"
FOR EACH ROW
DECLARE
checkclient PURCHASE.CLIENTNO%TYPE;
BEGIN
SELECT Clientno INTO checkclient
FROM PURCHASE
GROUP BY ClientNo
HAVING SUM(Amount)=(SELECT MAX(SUM(Amount)) FROM PURCHASE GROUP BY Clientno);
IF :new.ClientNo = checkclient
new.Amount := (:old.Amount * 0.90);
END IF;
END;
/
似乎具有与此触发的问题。我知道那里我不能使用WHEN()子句的子查询,所以我希望这会工作,但它不!想法任何人? :/Oracle触发器子查询问题
基本上我试图让这个触发器在插入前对金额值应用折扣,如果客户端匹配顶级客户端的话! :)
你试图通过这个触发器达到什么目的?我想你想给在你店里花费最多的客户一个10%的价格折扣。但是这个触发器不会这样做 - 触发器无法更改:新值和旧值以及:旧插入触发器为空。 –