[MySql] Problem mit Abfrage

Dhyani

Grünschnabel
Hallo,

erstmal sorry für die "schwammige" Überschrift, aber ich wußte nicht wie ich es besser formulieren sollte.

Folgendes:

Ich habe 2 Tabellen
t1 [statusmeldungen]
ID
StatusNr
Datum

t2 [Benutzerinformationen]
Name1
Name2

Ich suche alle Benutzer die innerhalb der letzten 48 Stunden als höchste StatusNr x erreicht haben. Danach können allerdings wieder niedrigere StatusNr aufgetreten sein.

Die Abfrage sieht wie folgt aus:

SELECT t1.Intnumber, t1.StatusNr, t1.StatusGesetzt, t2.Name1, t2.Name2
FROM t1, t2
WHERE t1.StatusGesetzt > '2004-12-07 12:24:05' AND t1.IntNumber = t2.IntNumber
GROUP BY t1.IntNumber
HAVING Max( t1.StatusNr ) = 1500
ORDER BY Right( t1.Intnumber, 6 ) , t2.StatusGesetzt DESC

Prinzipiell funktioniert die Abfrage, da ich nur die Datensätze erhalte die innerhalb der letzten 48 Stunden den max. Status 1500 erreicht haben. Allerdings erhalte ich als Datum immer das Datum des ersten Statuseintrags während der letzten 48 Stunden, nicht das Datum an dem Status 1500 gesetzt wurde.

Hoffe, ich hab mich einigermaßen verständlich ausgedrückt.

Gruß
Oliver
 
Ja, das ist gespeichert. T1 sieht ungefähr so aus:

LNr -- Intnumber -- StatusNr -- StatusGesetzt

001 -- 10009000 -- 0100 -- 2004-12-08 22:00:00
002 -- 10009000 -- 0150 -- 2004-12-09 02:00:00
003 -- 10009000 -- 1500 -- 2004-12-09 08:00:00
004 -- 10009000 -- 0600 -- 2004-12-09 12:00:00

Wenn ich die Abfrage nach Max(StatusNr) = 1500 und ab dem 09.12.2004 starte, wird mir zwar diese Intnumber zurückgeliefert, aber die Timestamp von Eintrag 002 und nicht die von Eintrag 003 wie gewünscht.
 

Neue Beiträge

Zurück