Bucht ein Kunde eine Reise, wird der Trigger ausgelöst. Hat ein Mitarbeiter dieses Jahr eine bestimmte Anzahl (10, 50, 200) an Buchungen Zugeordnet bekommen, erhöht sich sein Mitarbeiterrabatt auf maximal 15%.
Dazu hab ich den code geschrieben:
CREATE OR REPLACE TRIGGER betaetigte_buchungen
AFTER INSERT ON buchung
FOR EACH ROW
DECLARE
v_buchungsanzahl number default 0;
BEGIN
select COUNT(*)
into buchungsanzahl
from buchung
where mitarbeiter_id = personalnummer;
if buchungsanzahl >= 10 and buchungsbetrag< 50 THEN
rabatt = 5;
elseif buchungsanzahl >= 50 and buchungsbetrag < 200 THEN
rabatt = 10;
elseif buchungsanzahl >= 10 THEN
rabatt = 15;
END IF;
UPDATE mitarbeiter
mitarbeiter_rabatt = rabatt
WHERE mitarbeiter_id = NEW.mitarbeiter_id;
END;
Aber es zeigt den Fehler bei der IF-Anweisung.
Könnte einer mir weiterhelfen.
Dazu hab ich den code geschrieben:
CREATE OR REPLACE TRIGGER betaetigte_buchungen
AFTER INSERT ON buchung
FOR EACH ROW
DECLARE
v_buchungsanzahl number default 0;
BEGIN
select COUNT(*)
into buchungsanzahl
from buchung
where mitarbeiter_id = personalnummer;
if buchungsanzahl >= 10 and buchungsbetrag< 50 THEN
rabatt = 5;
elseif buchungsanzahl >= 50 and buchungsbetrag < 200 THEN
rabatt = 10;
elseif buchungsanzahl >= 10 THEN
rabatt = 15;
END IF;
UPDATE mitarbeiter
mitarbeiter_rabatt = rabatt
WHERE mitarbeiter_id = NEW.mitarbeiter_id;
END;
Aber es zeigt den Fehler bei der IF-Anweisung.
Könnte einer mir weiterhelfen.
Comment