Buenas tardes tengo una consulta a ver quien me la puede ayudar a resolver, tengo un tabla que tienen los siguientes datos:
id usuario nombre usuario feha y hora estado huellero 1 pepito 01/01/2015 08:00 inicio 1 1 pepito 01/01/2015 10:00 fin 1 1 pepito 01/01/2015 13:00 inicio 1 1 pepito 01/01/2015 13:10 fin 1 1 pepito 01/01/2015 13:50 fin 1 1 pepito 02/01/2015 08:00 inicio 1 1 pepito 02/01/2015 20:00 fin 1 1 pepito 03/01/2015 13:00 inicio 2 1 pepito 03/01/2015 13:50 fin 2 2 maria 01/01/2015 08:00 inicio 2 2 maria 01/01/2015 13:00 fin 2 2 maria 01/01/2015 21:00 fin 2 2 maria 02/01/2015 08:00 inicio 2
La idea es que la consulta me diga las horas transcurridas una persona teniendo en cuenta que el fin es cuando encuentre el siguiente inicio y que hay tener en cuenta que pueden ser de diferentes huelleros. Les agradezco me colaboren con esto que lo estoy necesitando urgente. gracias
- Versión para impresión
- Inicie sesión para enviar comentarios
Hola Me faltaria aclarar qué
Subido por Anonimo (no verificado) el 14 Abril, 2015 - 09:42
buenas noches si señor es un
Subido por ariel el 15 Abril, 2015 - 05:58
Entonces, asumiendo que de
Subido por Carlos el 17 Abril, 2015 - 13:26
En respuesta a buenas noches si señor es un por ariel
Entonces, asumiendo que de cada día lo que te interesa es el primer fichaje de inicio y el último fichaje de fin, podrías solventar el problema de los registros de más modificando la consulta anterior por algo así:
select a.id, a.usuario, a.dia datediff(h,a.fecha,b.fecha) [Diferencia en horas] from (select id, usuario, estado, year(fecha)*10000+month(fecha)*100+day(fecha) dia, min(fecha) from tabla_fichajes where estado='inicio'group by id, usuario, estado, year(fecha)*10000+month(fecha)*100+day(fecha) ) tabla a
join (select id, usuario, estado, year(fecha)*10000+month(fecha)*100+day(fecha) dia, max(fecha)
from tabla_fichajes
where estado='fin'
group by id, usuario, estado, year(fecha)*10000+month(fecha)*100+day(fecha)) tabla b on a.idusuario=b.idusuario and a.dia=b.dia
Con esto, si no me equivoco, te quedarías en las tablas a y b con sólo el primer y el último fichaje diario de cada usuario, independientemente del huellero que utilicen, ¿es más o menos lo que buscabas?