faecher:informatik:oberstufe:datenbanken:joins:loseungen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:joins:loseungen [26.11.2020 08:59] – angelegt sbelfaecher:informatik:oberstufe:datenbanken:joins:loseungen [13.11.2024 11:36] (aktuell) Marco Kuemmel
Zeile 1: Zeile 1:
-====== Lösungen Joins I ======+====== Lösungsvorschläge Joins I ======
  
 +++++Gib die Liste mit den Namen aller jemals bestellen Artikel mitsamt ihres Bestelldatums aus. |
 +<code sql>
 +SELECT AName, BZeitpunkt FROM artikel, bestellt
 +WHERE artikel.ANr = bestellt.ANr
 +</code>
 +++++
  
 +++++Gib die Liste aller Kundennummern zusammen mit den Namen der Artikel, die unter dieser Nummer bestellt wurden, aus.|
 +<code sql>
 +SELECT kunden.KNr, artikel.AName FROM artikel, kunden, bestellt
 +WHERE artikel.ANr = bestellt.ANr
 +  AND kunden.KNr=bestellt.KNr
 +</code>
 +++++
 +
 +++++Gib alle  Zeitpunkte aus, zu denen Thomas Tischler Artikel im Webshop bestellt hat. |
 +<code sql>
 +SELECT BZeitpunkt FROM kunden, bestellt 
 +WHERE kunden.KVorname='Thomas' 
 +  AND kunden.KNachname='Tischler' 
 +  AND kunden.KNr=bestellt.KNr;
 +</code>
 +++++
 +
 +++++ Gib  die Namen aller Artikel aus, die Maximilian Mayer bestellt hat.|
 +
 +<code sql>
 +SELECT KNachname,AName FROM kunden,bestellt,artikel 
 +WHERE kunden.KNr = bestellt.KNr 
 +  AND artikel.ANr = bestellt.ANr
 +  AND KVorname = "Maximilian"
 +  AND KNachname = "Mayer";
 +</code>
 +++++
 +
 +
 +
 +++++ Gib die Namen aller Kunden aus, die mindestens einmal einen Artikel bestellt haben, absteigend sortiert nach dem Datum der letzten Bestellung.|
 +<code sql>
 +SELECT KNachname, Max(BZeitpunkt) FROM kunden,bestellt
 +WHERE kunden.KNr = bestellt.KNr 
 +GROUP By KNachname
 +ORDER BY Max(BZeitpunkt) DESC;
 +</code>
 +++++
 +
 +
 +
 +++++ Gib pro Kunde aus, wie viele Artikel er insgesamt bestellt hat. Die Liste soll absteigend sortiert nach der Anzahl der Bestellungen ausgegeben werden. |
 +<code sql>
 +SELECT Knachname,sum(BAnzahl),count(*) FROM kunden,bestellt 
 +WHERE kunden.KNr = bestellt.KNr 
 +GROUP BY KNachname
 +ORDER BY count(*) DESC;
 +</code>
 +++++
 +
 +++++Gib die Namen der Artikel aus mitsamt der Information, wie oft sie insgesamt bestellt wurden. Die Liste soll absteigend sortiert nach der Anzahl der Bestellungen ausgegeben werden.|
 +<code sql>
 +SELECT AName,SUM(BAnzahl) FROM artikel,bestellt
 +WHERE artikel.ANr = bestellt.ANr
 +GROUP By AName
 +ORDER BY SUM(BAnzahl) DESC;
 +</code>
 +++++
 +
 +++++ Gib pro Kunde aus, wie viel Geld er insgesamt ausgegeben hat.|
 +<code sql>
 +SELECT KNachname,SUM(BAnzahl*APreis) FROM kunden,artikel,bestellt
 +WHERE artikel.ANr = bestellt.ANr
 +  AND kunden.KNr = bestellt.KNr
 +GROUP BY KNachname;
 +</code>
 +++++
 +
 +++++Gib die Nummern und Namen der Kundenpaare aus, die den gleichen Artikel bestellt haben.|
 +<code sql>
 +SELECT k1.KNachname, k2.KNachname, AName FROM 
 +kunden AS k1, kunden AS k2, 
 +bestellt AS b1,bestellt AS b2, artikel AS a
 +WHERE k1.KNr = b1.KNr
 +  AND b1.ANr = a.ANr
 +  AND b2.ANr = a.ANr
 +  AND k2.KNr = b2.KNr
 +  AND k1.KNr < k2.KNr;
 +
 +</code>
 +++++
 +
 +++++Zusatzaufgabe: Gib die Liste aller Kunden aus, die noch nie einen Artikel im Webshop bestellt haben.|
 +<code sql>
 +SELECT kunden.KNachname, kunden.KVorname
 +FROM kunden
 +WHERE kunden.KNr NOT IN
 +  (SELECT DISTINCT bestellt.KNr FROM bestellt);
 +</code>
 +++++
  • faecher/informatik/oberstufe/datenbanken/joins/loseungen.1606381177.txt.gz
  • Zuletzt geändert: 26.11.2020 08:59
  • von sbel