Gruppieren und sorteiren? Geht das ? [MYSQL]

wachteldonk

Erfahrenes Mitglied
Hallo,

ich habe eine Tabelle z.B:

ID
datumzeit
bezeichnung
....

ich möchte jetzt immer pro ID einen Datensatz, aber nur den mit dem größten Datumszeitwert. WIe kriegt man das hin? Wenn ich beim

Code:
 SELECT max(datumzeit)

mache, dann gibt er mir das maximale Datumzeit an, aber eben nicht den Rest z.B. die bezeichnung, die wird vom ersten gefundenen Eintrag genommen.

JEmand eine Idee?

Danke
 
Wenn ich dich richtig verstanden habe, dann so (Hängt aber auch vom DBMS ab. Das sollte bei MySQL 5+ funktionieren)

SQL:
SELECT * FROM tabelle WHERE datumzeit=(SELECT MAX(datumzeit) FROM tabelle)

Edit:
Äquivalent:
SQL:
SELECT * FROM participation ORDER BY participation_date DESC LIMIT 1
 
Auswählen des max() pro id und das Resultat wieder mit der Tabelle verbinden.
Das kann man über JOIN oder über WHERE machen.

SQL:
--Version mit WHERE
SELECT
	*
FROM
	mytable
WHERE
	ROW(id, datumzeit)=(	SELECT 
									id, 
									max(datumzeit) AS max_datumzeit 
								FROM 
									mytable 
								ORDER BY id);

--WHERE mit JOIN
SELECT
	mytable.*
FROM
	mytable
	INNER JOIN (SELECT 
						id, 
						max(datumzeit) AS max_datumzeit 
					FROM 
						mytable 
					ORDER BY id) AS max_data
	ON mytable.id = max_data.id
		AND mytable.datumzeit = max_data.max_datumzeit;

@CPoly
Ich hab verstanden, dass er das Max pro id haben will....
 
Zuletzt bearbeitet von einem Moderator:
Ich krieg eine Fehelrmeldung bei mir, dass das Subselect merh als einen Wert zurückgibt und das das nicht erlaubt ist. Außerdem kannd as so doch nicht sein, Es gib eine ID, ja, aber es muss eien andere Gruppeirung geben. Vielleicht beschreieb ich es mal als Text.

Ich habe eien Art Historie , in die ich wie in einem Logfile Dinge speichere. Jetzt speichert dieses Logfile histrische Werte für Produkte.

Ich möchte pro Produkt, den Eintrag mit dem größten Datumzeit Wert haben und alle dazu eingetragenen Werte. Also die Werte des Eintrages. Wnen ich mit max arbeite, kriege ich ja das maximale Datum, aebr eben nicht die dazu gehörigen Werte. Ich brauche pro Produkt den Eintrag mit dem maximalen Datum .
 
Zurück