faecher:informatik:oberstufe:datenbanken:joins:loseungen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:joins:loseungen [27.01.2022 07:43] 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. |+++++Gib die Liste mit den Namen aller jemals bestellen Artikel mitsamt ihres Bestelldatums aus. |
 <code sql> <code sql>
 SELECT AName, BZeitpunkt FROM artikel, bestellt SELECT AName, BZeitpunkt FROM artikel, bestellt
Zeile 8: Zeile 8:
 ++++ ++++
  
-++++ Gib die Liste aller Kundennummern zusammen mit den Namen der Artikel, die unter dieser Nummer bestellt wurden, aus.|+++++Gib die Liste aller Kundennummern zusammen mit den Namen der Artikel, die unter dieser Nummer bestellt wurden, aus.|
 <code sql> <code sql>
 SELECT kunden.KNr, artikel.AName FROM artikel, kunden, bestellt SELECT kunden.KNr, artikel.AName FROM artikel, kunden, bestellt
 WHERE artikel.ANr = bestellt.ANr WHERE artikel.ANr = bestellt.ANr
-AND kunden.KNr=bestellt.KNr+  AND kunden.KNr=bestellt.KNr
 </code> </code>
 ++++ ++++
  
-++++ Gib alle  Zeitpunkte aus, zu denen Thomas Tischler Artikel im Webshop bestellt hat. |+++++Gib alle  Zeitpunkte aus, zu denen Thomas Tischler Artikel im Webshop bestellt hat. |
 <code sql> <code sql>
 +SELECT BZeitpunkt FROM kunden, bestellt  
 +WHERE kunden.KVorname='Thomas'  
 +  AND kunden.KNachname='Tischler'  
 +  AND kunden.KNr=bestellt.KNr;
 </code> </code>
 ++++ ++++
  
-Gib  die Namen aller Artikel aus, die Maximilian Mayer bestellt hat.+++++ 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.+ 
 +++++ 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> 
 +++++
  
  
Zeile 39: Zeile 58:
 ++++ ++++
  
-  - 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. +++++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.| 
-  -  Gib pro Kunde aus, wie viel Geld er insgesamt ausgegeben hat. +<code sql> 
-  Gib die Nummern und Namen der Kundenpaare aus, die den gleichen Artikel bestellt haben. +SELECT AName,SUM(BAnzahl) FROM artikel,bestellt 
-  Zusatzaufgabe: Gib die Liste aller Kunden aus, die noch nie einen Artikel im Webshop bestellt haben.((Tipp: ''WHERE attribute NOT IN'' (SQL-Klausel). ))+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.1643269410.txt.gz
  • Zuletzt geändert: 27.01.2022 07:43
  • von sbel