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?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage