MYSQL: Problem mit MAX()

Hallo,

Gegeben ist folgende Tabelle:

Pers_id | time_stamp | nummer

1 | 1001 | 3
1 | 1000 | 5
2 | 2000 | 1
2 | 2004 | 2

Folgendes Ergebnis soll eine Abrage liefern:

Pers_id | time_stamp | nummer

1 | 1001 | 3
2 | 2004 | 2

Also ausformuliert: Zu jeder Person das Tuple mit dem höchsten Timestamp.

Verwendetes Datenbanksystem ist mysql 5.0.21

Ich hab schon sämmlich Varianten mit Group By, Having und MAX ausprobiert komme aber ohne die Verwendung von Unterabfragen einfach nicht auf das Ergebnis oben. (Das Problem habe ich nur mit MySQL, mit MSSQL geht es mit einer Kombination aus Group by und der MAX-Funktion)

Vielen Dank für Eure Antworten.

Moin,

probiers mal so:

SELECT \* 
FROM pers\_tst p1
WHERE NOT EXISTS (SELECT 1 
 FROM pers\_tst p2 
 WHERE p1.pers\_id = p2.pers\_id
 AND TO\_NUMBER(p1.time\_stamp) 


Gruß
Andreas 

Das Verwenden von Unterabfragen wollte ich zwar vermeiden. Trotzdem vielen Dank für Deinen Lösungsvorschlag.

Hallo

Verwendetes Datenbanksystem ist mysql 5.0.21

Ich hab schon sämmlich Varianten mit Group By, Having und MAX
ausprobiert komme aber ohne die Verwendung von Unterabfragen
einfach nicht auf das Ergebnis oben. (Das Problem habe ich nur
mit MySQL, mit MSSQL geht es mit einer Kombination aus Group
by und der MAX-Funktion)

Die Anweisung von MSSQL sollte bei MySQL auch funktionieren. Ich arbeite neben MSSQL mit MySQL 5.0.16 und da gehts.

Gruß
Thomas

Die Anweisung von MSSQL sollte bei MySQL auch funktionieren.
Ich arbeite neben MSSQL mit MySQL 5.0.16 und da gehts.

Hast Du das Beispiel oben ausprobiert. Wenn ja wie? (Code)

wenn ich mich jetzt nicht vertippt habe, beim verändern des Statements, welche ich immer verwenden, dann geht dies auch

Wahrscheinlich nur bei MySQL:

select distinct
tabelle1.pers_id
substring_index(x.max_time_stamp_nummer, ’ | ', -1),
substring_index(x.max_time_stamp_nummer, ’ | ', 1)
from
tabelle1
(
select
pers_id,
cast(
max(
concat(
time_stamp,
’ | ',
nummer
)
) as char(100)
) as max_time_stamp_nummer
from
tabelle1
group by
pers_id
) x
where
tabelle1.pers_id = x.pers_id
order by
tabelle1.pers_id