Problem mit "Group By" in Verbindung mit ORDER BY

Ich habe eigentlich genau das gemacht was akterschmer mit gruppieren und dazu joinen meinte. t1 liefert zu jeder Datei die Laufzeit per GROUP BY. Da du die Anfangs und Endzeiten haben will joine ich die aus t2 dazu. Das Resultat wird dann sortiert und liefert nur die ersten drei Datensätze.
 
Werbung:
Ja, vom Grundsatz her passt das auch, nur eben nicht bei den Differenzen von start und ende, wie im Bild zu sehen ist.
Die Differenenz von 00:59:59 zu 01:00:00 gibt halt meines Wissens nach 1 Sekunde und nicht 4041 Sekunden.
Oder 08:26:44 zu 08:27:13 müsste 29 ergeben und nicht 69. Kann es sein, dass evtl. SQL falsch "rechnet" ??

Was mir gerade noch eingefallen ist: ihr vergleicht ja mit Zahlen. Macht es vielleicht einen Unterschied, dass ich ja anstatt Zahlen DatumZeit-Werte habe? Die werden doch intern als Sekunden seit 1970 oder so gespeichert, sodass das kein Problem machen dürfte?
 
Wenn ich die Timediff()-Funktion wie folgt anwende:

select n.datei,start,ende,max from nowonowo n
inner join (select datei, TIMEDIFF(ende,start) AS max from nowonowo group by datei) bla
on ((bla.datei, bla.max)=(n.datei,n.ende-n.start))
ORDER BY `bla`.`max` DESC

Passt folgendes nicht:
- es tauchen mehrmals die selben Dateien auf (jede Datei soll 1x auftauchen mit der max. Laufzeit und wann die max. Laufzeit war (start,ende))
- es gibt noch andere max. Laufzeiten, welche in diesem Ergebnis nicht enthalten sind (select start,ende,datei,TIMEDIFF(ende,start) AS max from nowo ORDER BY `max` DESC)
 
Werbung:
Du musst in jedem Fall auch TIMEDIFF in deiner Join-Bedingung in gleicher Weise verwenden wie im Select. Eigentlich müsste das wie im Post #11 beschrieben laufen, ich teste das morgen mal an Beispieldaten.
 
Zurück
Oben