113 lines
2.1 KiB
Markdown
113 lines
2.1 KiB
Markdown
b)
|
||
1. π Vorname,Nachname,Anrede σ Anrede='Herr' ∧ Nachname ≥ 'D' ∧ Nachname < 'E'Kunde
|
||
2. π Vorname σ Anrede='Frau' ∧ Plz='39846' Kunde
|
||
3. π Artikelname σ Standort='INF'(Lager ⨝ ANummer=Artikelnummer Artikel)
|
||
4. π Bestellnummer,Bestellstatus,Vorname,Nachname σ Anrede='Herr' ∧ Bestellstatus='bestaetigt' (Kunde ⨝ Kundennummer=Kundennummer Bestellung )
|
||
5. π Plz,Strasse,Nachname,Wunschterminσ Wunschtermin≥'23.07.2016'∧ Wunschtermin <'24.07.2016' (Kunde ⨝ Kundennummer=Kundennummer Bestellung)
|
||
2 d
|
||
1. SELECT \* FROM Artikel order by preis
|
||
2. SELECT vorname, nachname, geburtsdatum FROM kunde WHERE vorname like 'M%' ORDER by geburtsdatum
|
||
3. SELECT COUNT(\*) FROM kunde WHERE anrede = 'Frau'
|
||
4. select * from kunde where anrede='Frau' order by geburtsdatum DESC FETCH FIRST 1 ROW ONLY;
|
||
3.
|
||
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
|
||
``` |