Finden Sie den Zeitunterschied zwischen zwei aufeinanderfolgenden Zeilen in derselben Tabelle in sql
Ich stecke fest. Ich habe nach einer Antwort gesucht, kann aber anscheinend keine Zeit in derselben Tabelle von zwei verschiedenen Zeilen derselben Tabelle abziehen, die passen. Ich habe eine schwierige Zeit mit der folgenden Abfrage. In der folgenden Tabelle möchte ich das TimeOut von einer Zeile zur TimeIn der nächsten Zeile unterscheiden. Berücksichtigen Sie in der folgenden Tabelle die Differenz in Minuten zwischen dem TimeOut in Zeile 1 (10:35 Uhr) und dem TimeIn in Zeile 2 (10:38 Uhr).
Tabelle 1:TIMESHEET
ROW EmpID TimeIn TimeOut
----------------------------------------------------------------
1 138 2014-01-05 10:04:00 2014-01-05 10:35:00
2 138 2014-01-05 10:38:00 2014-01-05 10:59:00
3 138 2014-01-05 11:05:00 2014-01-05 11:30:00
Erwartete Ergebniss
ROW EmpID TimeIn TimeOut Minutes
----------------------------------------------------------------------------
1 138 2014-01-05 10:04:00 2014-01-05 10:35:00
2 138 2014-01-05 10:38:00 2014-01-05 10:59:00 3
3 138 2014-01-05 11:05:00 2014-01-05 11:30:00 6
etc
etc
etc
rundsätzlich muss ich die Zeiten in der Abfrage differenzieren, um zu zeigen, wie lange die Mitarbeiter in der Pause ware
Ich habe versucht, eine Verknüpfung zu erstellen, aber das scheint nicht zu funktionieren, und ich weiß nicht, obOVER
mitPARTITION
ist der richtige Weg, weil ich der Logik nicht folgen kann (Ja, ich lerne noch). Ich berücksichtige auch zwei temporäre Tabellen und vergleiche sie, aber das funktioniert nicht, wenn ich anfange, Tage oder Mitarbeiter-IDs zu ändern. Schließlich denke ich vielleichtLEAD
in einem (nOVER
Erklärung? Oder ist es einfach ein @ zu machDATEDIFF
mit einerCAST
?