MichaelKreil Geschrieben 20. November 2022 Teilen Geschrieben 20. November 2022 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; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 20. November 2022 Teilen Geschrieben 20. November 2022 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 MichaelKreil reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MichaelKreil Geschrieben 20. November 2022 Autor Teilen Geschrieben 20. November 2022 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 20. November 2022 Teilen Geschrieben 20. November 2022 dein Select, From und LEFT JOIN sind soweit richtig. Das ORDER BY aus dem Muster würde ich aus der Aufgabe nicht herauslesen. MichaelKreil reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thomas Lohnert Geschrieben 2. Dezember 2022 Teilen Geschrieben 2. Dezember 2022 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.