-- Schreiben Sie einen Select-Befehl, der aus der Relation 
-- Personal die Namen aller  
-- Personen ermittelt, die mehr als 3000 Euro verdienen. 

SELECT NAME FROM personal WHERE gehalt >3000;

-- Geben Sie mittels eines Select-Befehls die Gesamtanzahl 
-- der für Aufträge reservierten 
-- Artikel aus (die benötigten Informationen stehen in 
-- der Relation Reservierung). 

SELECT SUM(Anzahl) AS Anzahl FROM reservierung;

SELECT * FROM reservierung;
SELECT * FROM lager;


-- Geben Sie mittels eines Select-Befehls alle Artikel der Relation Lager aus, dessen 
-- Bestand abzüglich des Mindestbestands und der Reservierungen unter den Wert 3 
-- gesunken ist. Als Ausgabe werden Artikelnummer und Artikelbezeichnung erwartet. 
SELECT * FROM lager;

SELECT anr, bezeichnung FROM artikel NATURAL JOIN
(SELECT artnr AS anr, bestand, reserviert, mindbest FROM lager)t1 
WHERE bestand - (reserviert + mindbest) < 3  ; 

-- SELECT * FROM lager WHERE (bestand - reserviert - mindbest) < 3;

-- Aus wie vielen Einzelteilen bestehen alle zusammengesetzten Artikel? Bestimmen Sie 
-- diese Stückzahlen mittels eines Select-Befehls. Falls ein Einzelteil wieder aus noch 
-- kleineren Einzelteilen besteht, so ist dies nicht weiter zu berücksichtigen. 
-- Ausschlaggebend zur Ermittlung der Anzahl der Einzelteile ist das Attribut Anzahl ohne 
-- Rücksichtnahme auf die Einheit (‚ST‘ oder ‚CM‘).

SELECT artnr, SUM(Anzahl) AS anzahl FROM teilestruktur 
GROUP BY artnr;

SELECT * from teilestruktur;



-- Geben Sie alle Artikel aus, die vom Auftrag mit der 
-- Auftragsnummer 2 reserviert sind. 
-- Geben Sie dazu zu jedem Artikel die Artikelnummer, 
-- die Artikelbezeichnung und die 
-- Anzahl der für diesen Auftrag reservierten Artikel aus.

-- WAs finde ich wo?
SELECT * FROM auftrag WHERE auftrNr=2;
SELECT * FROM auftragsposten WHERE auftrNr=2;
SELECT * FROM reservierung; 

-- Geben Sie dazu zu jedem Artikel die Artikelnummer, 
-- die Artikelbezeichnung und die 
-- Anzahl der für diesen Auftrag reservierten Artikel aus.
SELECT * FROM auftragsposten NATURAL JOIN reservierung WHERE auftrNr=2;


SELECT anr, anzahl AS reserviert, bezeichnung FROM
(SELECT Artnr AS anr, Anzahl FROM 
(SELECT PosNr from auftragsposten WHERE auftrNr=2)t1
natural join reservierung)t3 NATURAL JOIN artikel;

SELECT anr, Anzahl, bezeichnung FROM
(SELECT ArtNr AS anr, 0 AS Anzahl  
FROM auftragsposten WHERE AuftrNr=2)t2
NATURAL JOIN artikel;




SELECT anr, anzahl AS reserviert, bezeichnung FROM (SELECT artnr AS anr, 0 AS anzahl 
FROM auftragsposten WHERE auftrnr=2)t1 
NATURAL JOIN artikel

UNION 

SELECT anr, anzahl AS reserviert, bezeichnung FROM
(SELECT Artnr AS anr, Anzahl FROM 
(SELECT PosNr from auftragsposten WHERE auftrNr=2)t1
natural join reservierung)t3 NATURAL JOIN artikel;



-- Modifizieren Sie die Aufgabe 5 dahingehend, 
-- dass alle Artikel der Relation Artikel 
 -- ausgegeben werden und nicht nur die reservierten. 
 -- Für die nicht für Auftrag 2 
-- reservierten Teile ist die entsprechende 
-- Spaltenangabe zu den Reservierungen auf den 
-- Zahlenwert 0 zu setzen. 

-- Geben Sie zu allen Mitarbeitern (Persnr, Name) die Gesamtumsatzsumme 
-- der von ihnen betreuten Aufträge ist. 



-- Geben Sie alle Lieferanten an, die mindestens die gleichen Artikel 
-- liefern wie Lieferant 3


-- Es sind sieben neue Sättel eingetroffen. Modifizieren Sie die Datenbank. 

-- Es wird ein Damen-Mountainbike ins Sortiment aufgenommen. 
-- Weitere Angaben sind: ANr100003, Preis 650.00, Nettopreis 560.34, 
-- Steuer 89.66, Mass26 Zoll, Einheit ST, Typ E. 
-- Nehmen Sie dieses Fahrrad in die Relation Artikel auf. 
SELECT * FROM lieferant;
-- Die Lieferantin „Firma Gerti Schmidtner“ wird auch Kundin mit 
-- der Kundennummer 10. 
-- Nehmen Sie die Lieferantin auch in die Kundenrelation auf. 
-- Die benötigten Daten sind direkt der Lieferantenrelation zu entnehmen. 


-- Löschen Sie alle Artikel aus der Relation Lager, 
-- deren Bestand auf 0 gesunken ist. 

-- Erhöhen Sie das Gehalt aller Mitarbeiter um 100 Euro, 
-- bei denen die Beurteilung 1 eingetragen ist. 
-- Senken Sie gleichzeitig die Beurteilung um eine Notenstufe. 


