Vinzenz Mai: group by probleme

Beitrag lesen

Hallo Holger,

Iljas Lösungsvorschlag für Matthias Problem sollte auf Deine Aufgabenstellung anpassbar sein.

ja, das ging jetzt:
select a.artikelname, a.kategorie_nr, einzelpreis from artikel as a where einzelpreis = (select max(einzelpreis) from artikel as a1 where a.kategorie_nr = a1.kategorie_nr);

Das ist doch was. Du siehst, dass für Deine Frage im Archiv des Forums bereits eine Antwort vorhanden war (bestimmt nicht die einzige, aber die, an die ich mich erinnern konnte). Ähnliches gilt für viele weitere Fragen. Füttere die Forumssuche mit geeigneten Suchbegriffen und Du wirst in vielen Fällen Lösungswege aufgezeigt bekommen.

es gibt demnach also keine möglichkeit, das alleine über group by zu lösen, oder?

Wie ich Dir bereits in meinem ersten Posting verlinkte, geht dies nicht. Du kannst ja nicht nach dem Artikelnamen gruppieren, da Du nicht alle willst, sondern nur einen. Dieser ist exakt bestimmt: es ist der Name des Artikels mit dem höchsten Preis in seiner Kategorie.

Du willst doch genau das haben, was das SQL-Statement besagt:

Gib mir
  Artikelname,
  Kategorie,
  Preis
aus der Artikeltabelle
wobei ich nur den Artikel mit dem höchsten Preis in seiner Kategorie haben möchte.

Soo kompliziert ist das Statement auch wieder nicht, ein netter Einstieg in Subselects.

Freundliche Grüße

Vinzenz