2.1 KiB
2.1 KiB
b)
- π Vorname,Nachname,Anrede σ Anrede='Herr' ∧ Nachname ≥ 'D' ∧ Nachname < 'E'Kunde
- π Vorname σ Anrede='Frau' ∧ Plz='39846' Kunde
- π Artikelname σ Standort='INF'(Lager ⨝ ANummer=Artikelnummer Artikel)
- π Bestellnummer,Bestellstatus,Vorname,Nachname σ Anrede='Herr' ∧ Bestellstatus='bestaetigt' (Kunde ⨝ Kundennummer=Kundennummer Bestellung )
- π Plz,Strasse,Nachname,Wunschterminσ Wunschtermin≥'23.07.2016'∧ Wunschtermin <'24.07.2016' (Kunde ⨝ Kundennummer=Kundennummer Bestellung) 2 d
- SELECT * FROM Artikel order by preis
- SELECT vorname, nachname, geburtsdatum FROM kunde WHERE vorname like 'M%' ORDER by geburtsdatum
- SELECT COUNT(*) FROM kunde WHERE anrede = 'Frau'
- select * from kunde where anrede='Frau' order by geburtsdatum DESC FETCH FIRST 1 ROW ONLY;
a)
CREATE OR REPLACE TRIGGER vor_insert_bestellposition
BEFORE INSERT ON Bestellposition
FOR EACH ROW
DECLARE
anzahl_bestellungen NUMBER;
BEGIN
-- Zählen Sie die Anzahl der Bestellungen für den Artikel
SELECT COUNT(*)
INTO anzahl_bestellungen
FROM Bestellposition
WHERE Artikelnummer = :NEW.Artikelnummer;
-- Überprüfen Sie, ob der Artikel mindestens fünfmal bestellt wurde
IF anzahl_bestellungen >= 5 THEN
-- Fügen Sie einen Rabatt von 10% hinzu
:NEW.Reduktion := 10;
END IF;
END;
b)
CREATE OR REPLACE PROCEDURE deleteOrder(p_idBestellung IN NUMBER) AS
BEGIN
-- Löschen von Bestellpositionen für die angegebene Bestellung
DELETE FROM Bestellposition
WHERE Bestellnummer = p_idBestellung;
-- Löschen der Bestellung
DELETE FROM Bestellung
WHERE Bestellnummer = p_idBestellung;
-- Commit der Transaktion
COMMIT;
END deleteOrder;
BEGIN
deleteOrder(50);
END;
c)
create or replace VIEW lol
as
Select
B.Bestellnummer,
B.Kundennummer,
B.Bestelldatum,
BP.Anzahl,
A.Artikelname,
A.Preis
From bestellung B
join Bestellposition BP on B.Bestellnummer = BP.Bestellnummer
join artikel A on BP.Artikelnummer = A.Artikelnummer