MySQL - Calcular tiempo entre 2 registros en la misma tabla MySQL

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 68 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Calcular tiempo entre 2 registros en la misma tabla MySQL

Publicado por Carlos (1 intervención) el 25/10/2018 17:46:41
Hola, tengo que hacer una consulta con MySql. Les comento: Tengo una tabla con los registros de Entradas y Salidas de Personas. Lo que requiero es conocer la cantidad de minutos que estuvo cada persona por fuera, considerando que en el campo “Evento” de Entradas/Salida en la tabla se almacena con “1”, Cada Salida se almacena en al Campo “Valor” con “0” y Cada Entrada se almacena en el Campo “Valor” con “1”.

Al tomar una entrada (Valor=1) se debe buscar en la tabla el registro inmediato anterior de la misma persona que corresponda a una Salida (Valor=0) y calcular la cantidad de minutos de diferencia entre la fecha/hora de entrada y la fecha/hora de salida. Alguien me podría ayudar?

He realizado una consulta pero me resulta muy lenta y se cuelga, ya que tengo cientos de miles de registros en la tabla.

1
2
3
4
5
SELECT d.id, d.dni, (select t.fecha from datos t where t.Evento=1 and t.Valor=0 and t.dni=d.dni and t.id<d.id order by t.id desc Limit 1) as Fecha_Salida,
 d.fecha as Fecha_Entrada, TIMESTAMPDIFF(MINUTE, (select t.fecha from datos t where t.Evento=1 and t.Valor=0 and t.dni=d.dni and t.id<d.id order by t.id desc Limit 1), d.fecha) as MINUTOS
FROM datos d
where d.Evento=1 and d.valor=1 and month(d.fecha)=month(curdate())
order by d.id desc;
zI75G
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder