Muszę wykonać procedurę zwiększającą rabat o 3% za każdą dodatkową usługę dla klientów, którzy zamówili więcej niż 3 usługi.
Próbowałem zrobić coś na podstawie przykładów z internetu, lecz nie wiem jak napisać pętlę.
BEGIN
FOR I IN (
SELECT K.ID_KLIENTA,
FROM ID_KLIENTA K
JOIN OSOBY O
ON P.ID_OSOBY = O.ID_OSOBY
WHERE
) LOOP
UPDATE Osoby O
SET K.ID_KLIENTA = I.ID_KLIENTA
END LOOP;
END;
Osoby table structure
Id_osoby NUMBER CONSTRAINT osoby_pk PRIMARY KEY,
Imie VARCHAR2(15) NOT NULL,
Nazwisko VARCHAR2(30) NOT NULL,
Wiek NUMBER NOT NULL CONSTRAINT ch_wiek CHECK((Wiek>=0) AND (Wiek<=125)),
Stan_cywilny VARCHAR2(12) NOT NULL,
Telefon VARCHAR2(20),
Pesel CHAR(11) NOT NULL CONSTRAINT osoba_uni UNIQUE,
Id_adresu NUMBER NOT NULL,
CONSTRAINT os_ad_fk FOREIGN KEY (Id_adresu) REFERENCES Adresy(Id_adresu)
Klienci table structure
Id_klienta NUMBER CONSTRAINT klient_pk PRIMARY KEY,
Id_osoby NUMBER NOT NULL CONSTRAINT kl_unique UNIQUE,
Znizka NUMBER,
CONSTRAINT kl_os_fk FOREIGN KEY (Id_osoby) REFERENCES Osoby(Id_osoby)
Uslugi table structure
Id_uslugi NUMBER CONSTRAINT uslugi_pk PRIMARY KEY,
Opis VARCHAR2(500),
Cena NUMBER NOT NULL
Zlecenia table structure
Id_zlecenia NUMBER CONSTRAINT zlecenie_pk PRIMARY KEY,
Id_uslugi NUMBER NOT NULL,
Id_klienta NUMBER NOT NULL,
Id_pracownika NUMBER NOT NULL,
Data_zl DATE NOT NULL,
CONSTRAINT zl_us_fk FOREIGN KEY (Id_uslugi) REFERENCES Uslugi(Id_uslugi),
CONSTRAINT zl_kl_fk FOREIGN KEY (Id_uslugi) REFERENCES Klienci(Id_klienta),
CONSTRAINT zl_pr_fk FOREIGN KEY (Id_uslugi) REFERENCES Pracownicy(Id_pracownika)