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%的價格折扣。但是這個觸發器不會這樣做 - 觸發器無法更改:新值和舊值以及:舊插入觸發器爲空。 –