diff --git a/AWP_11fi5/Nordwind/Nordwind JOINS.sql b/AWP_11fi5/Nordwind/Nordwind JOINS.sql new file mode 100644 index 0000000..aeb8dce --- /dev/null +++ b/AWP_11fi5/Nordwind/Nordwind JOINS.sql @@ -0,0 +1,58 @@ +#2021-05-20 Übungen Nordwind +USE nordwind; + +#a. Wie lange dauert der Versand im Schnitt bei unseren Versandfirmen? +SELECT v.Firma, AVG(DATEDIFF(Lieferdatum, Versanddatum)) FROM versandfirmen v +JOIN bestellungen b ON b.`VersandÜber` = v.FirmenNr +GROUP BY b.`VersandÜber`; + +#b. Erstellen Sie eine Liste, wie hoch die Frachtkosten unserer Versandfirmen 1996 insgesamt waren. +SELECT v.Firma, SUM(Frachtkosten) FROM versandfirmen v +JOIN bestellungen b ON b.`VersandÜber` = v.FirmenNr +WHERE YEAR(b.Bestelldatum) = 1996 +GROUP BY b.`VersandÜber`; + +#c. Erstellen Sie eine Liste der Kunden(Kundenname), deren Waren noch nicht versendet wurden. +SELECT DISTINCT k.Firma, k.Kontaktperson FROM kunden k +JOIN bestellungen b ON b.KundenCode = k.KundenCode +WHERE b.Versanddatum IS NULL; + +#d. Ermitteln Sie, wie oft unsere Kunden 1998 im Mittel bestellt haben. +#gesamt +SELECT AVG(Bestellzahl) FROM ( + SELECT k.Firma, COUNT(b.BestellNr) as Bestellzahl FROM kunden k + JOIN bestellungen b ON b.KundenCode = k.KundenCode + WHERE YEAR(b.Bestelldatum) = 1998 + GROUP BY b.KundenCode + ) bestellcount; + +#pro Kunde +SELECT k.Firma, COUNT(b.BestellNr) as Bestellzahl FROM kunden k +JOIN bestellungen b ON b.KundenCode = k.KundenCode +WHERE YEAR(b.Bestelldatum) = 1998 +GROUP BY b.KundenCode; + +#e. Stellen Sie fest, wie hoch der Bestellwert des Kunden LILA Supermercado 1996 jeweils bei Bestellungen über 1000,00€ war. +#Geben Sie Bestellnummer, Bestellwert und Bestelldatum an. +SELECT b.BestellNr, SUM(d.Einzelpreis * d.Anzahl * (1-d.Rabatt)) as Bestellwert, b.Bestelldatum FROM kunden k +JOIN bestellungen b ON b.KundenCode = k.KundenCode +JOIN bestelldetails d ON d.BestellNr = b.BestellNr +WHERE k.Firma = "LILA-Supermercado" + AND YEAR(Bestelldatum) = 1996 +GROUP BY b.BestellNr +HAVING SUM(d.Einzelpreis * d.Anzahl * (1-d.Rabatt)) > 1000; + +#f. Stellen Sie fest, wie viele Sendungen in die USA gingen. +SELECT COUNT(*) FROM bestellungen +WHERE Bestimmungsland = "USA"; + +#g. Ermitteln Sie, wie viele verschiedene Länder wir beliefern. +SELECT COUNT(DISTINCT Bestimmungsland) FROM bestellungen; + +#h. Berechnen Sie, wie viel Umsatz wir mit skandinavischen Lieferanten insgesamt machen. +SELECT SUM(d.Einzelpreis * d.Anzahl * (1-d.Rabatt)) as Umsatz FROM bestellungen b +JOIN bestelldetails d ON b.BestellNr = d.BestellNr +JOIN artikel a ON d.ArtikelNr = a.ArtikelNr +JOIN lieferanten l ON a.LieferantenNr = l.LieferantenNr +WHERE l.Land IN ("Dänemark", "Norwegen", "Finnland", "Schweden"); +