Zum Inhalt springen

Bitte um Prüfung der Lösung bei SQL Aufgabe eCo GmbH


Empfohlene Beiträge

Hallo zusammen,

wäre meine Lösung auch ok bzw. wenn nicht, kann mir bitte jemand sagen warum?

Warum wurde bei der IHK Lösung eigentlich mit Left Join gearbeitet?

 

 

Ich hätte es so versucht:

Select Kunde.Kunde_ID, Kunde.Firma, Count (Rechnung ID) AS Anzahl from Kunde AS K

Left Join Rechnung AS R

on K.ID=R.ID order by Anzahl DESC;

Bildschirmfoto 2022-11-20 um 13.07.05.png

Bildschirmfoto 2022-11-20 um 13.07.35.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb MichaelKreil:

Warum wurde bei der IHK Lösung eigentlich mit Left Join gearbeitet?

Was macht denn ein LEFT JOIN? 

vor einer Stunde schrieb MichaelKreil:

wäre meine Lösung auch ok

Nein, dir fehlt die Einschränkung des Jahres und die Aggregierung um die Anzahl pro Kunde zu ermitteln

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Minuten schrieb _n4p_:

Was macht denn ein LEFT JOIN? 

Nein, dir fehlt die Einschränkung des Jahres und die Aggregierung um die Anzahl pro Kunde zu ermitteln

Vielen herzlichen Dank!

 

Ein Left Join würde in meinen Augen alles von Kunde anzeigen und wenn dazu passende Einträge vorhanden sind auch Einträge aus der Tabelle Rechnung 

Wäre der Rest, abgesehen von der Gruppierung und Einschränkung in Ordnung?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Dein JOIN ist nicht ganz richtig.

Du schreibst: on K.ID=R.ID

Es muss aber heißen: on K.Kunde_ID=R.Kunde_ID, es gibt in den Tabellen ja gar kein Feld "ID" und in Rechnung gibt es 2 IDs, nämlich Rechnung_ID und Kunde_ID.

Außerdem steht bei Dir im COUNT "Rechnung ID" statt "Rechnung_ID". Kein großer Unterschied, aber halt schon unerlässlich, damit es funktioniert... Und ganz korrekt solltest Du schreiben: COUNT(R.Rechnung_ID)

Und wenn Du schon hinten ein "Kunde AS K" machst, solltest Du im SELECT auch K.Kunde_ID und K.Firma schreiben statt Kunde.Kunde_ID und Kunde.Firma

Am wichtigsten ist aber, dass bei Dir das GROUP BY fehlt. Das WHERE auf das Jahr fehlt bei Dir natürlich auch, aber das würde zumindest nicht dafür sorgen, dass die Abfrage fehlschlägt, es würden nur die falschen Daten geliefert, nämlich alle Jahre statt nur 2015.

Wie schon ein Vorredner erwähnt hat, würde ich das ORDER BY auch nicht so aus der Aufgabe herauslesen, ergibt sich aber meinetwegen aus der Beispieltabelle, schadet nicht.

Generell: 

Schlüsselwörter bei SQL immer all caps schreiben, also SELECT, JOIN, FROM, WHERE usw., nicht Select, Join, From...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...