Aggregat mit Group By

chuvak

Erfahrenes Mitglied
Ich habe eine Tabelle "Artikel" mit den Spalten "name, einkaufspreis, verkaufspreis".
Jetzt möchte ich gerne den Artikel haben, der den höchsten Bruttogewinn erzielen würde.

Code:
SELECT name, max( verkaufspreis - einkaufspreis )
FROM artikel
GROUP BY name

Ich erhalte aber eine vollständige Liste meiner Artikel mit dem jeweiligen Bruttogewinn, anstatt des Artikels mit dem höchsten Gewinn.

Wo liegt der Fehler?
 
Du musst noch sortieren und dich auf den erten konzentrieren.
Zudem denke ich, dass der Umsatz die Summe aller Verkeaufspreise-Einkaufspreise pro name ist. Mit MAX() nimmst du den höchsten Bruttogewinn pro Artikel

SQL:
SELECT name, SUM( verkaufspreis - einkaufspreis )
FROM artikel
GROUP BY name
ORDER BY SUM( verkaufspreis - einkaufspreis ) DESC
LIMIT 1
Dieses Beispiel ist für MySQL. Mit anderen Datenbanken kann es anderst aussehen
 
Zuletzt bearbeitet von einem Moderator:
Zurück