SQL Max und dann Sum?

BaseBallBatBoy

Erfahrenes Mitglied
Hallo!

Ich habe gerade einen Knoten im Kopf und komme nicht weiter.

Ausgangslage:

kunde,land,wert
123,UK,200
123,DE,500
123,FR,300

Nun möchte ich davon einen Record erhalten, mit dem Land vom Kunden, welches max(wert) hat, der wert selber soll dann aber sum(wert) sein. Ich suche also:

kunde,land,wert
123,DE,1000

Wie muss ich das select bauen? Ich komm einfach nicht drauf...

Gruss
BBBB
 
Für den Max-Wert (DE):
MySQL Aktuelle Einträge pro Gruppe auslesen

Gibt so auf die schnelle und ungetestet
SQL:
SELECT
	dat.kunde,
	mt.land,
	SUM(dat.wert)
FROM
	my_table AS dat
	INNER JOIN (
		SELECT
			kunde,
			land
		FROM
				my_table AS t
				INNER JOIN (
						SELECT
							kunde,
							MAX(wert) AS max_wert
						FROM
							my_table
						GROUP BY
							kunde
					) AS m
					ON m.kunde = t.kunde
					AND m.max_wert = t.wert
			) AS mt
		ON dat.kunde = mt.kunde
GROUP BY
	dat.kunde,
	mt.land
 
Zuletzt bearbeitet von einem Moderator:
Zurück