Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

  • Autor
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?

  • 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...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.