Encuentre la diferencia horaria entre dos filas consecutivas en la misma tabla en sql
Estoy atascado. He buscado una respuesta, pero parece que no puedo encontrar el tiempo de resta en la misma tabla de dos filas diferentes de la misma tabla que se ajusta. Estoy teniendo un momento difícil con la siguiente consulta. En la tabla a continuación, quiero diferenciar el TimeOut de una fila al TimeIn de la siguiente fila. Considere en la siguiente tabla encontrar la diferencia en minutos entre TimeOut en la fila 1 (10:35 am) y TimeIn en la fila 2 (10:38 am).
Tabla 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
Resultados previstos
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
Básicamente, necesito diferenciar los tiempos en la consulta para mostrar cuánto tiempo estuvieron los empleados en descanso.
He intentado unirme, pero eso no parece funcionar y no sé siOVER
conPARTITION
es el camino a seguir, porque parece que no puedo seguir la lógica (Sí, todavía estoy aprendiendo). También estoy considerando dos tablas temporales y comparándolas, pero eso no funciona cuando empiezo a cambiar los días o las identificaciones de los empleados. Finalmente, estoy pensando que tal vezLEAD
en unOVER
¿declaración? ¿O es simple hacer unDATEDIFF
con unCAST
?