Visual Basic Foro
Programación => Bases de Datos => Mensaje iniciado por: Jeronimo en Septiembre 17, 2015, 10:50:02 am
-
¡Hola!
Antes que todo, perdón, pero no sabía qué título poner.
Tengo la siguiente tabla: asistencia (id, fecha, hora, id_empleado, tipo)
El campo tipo es para indicar si es ingreso (i) o egreso (e).
Ahora, lo que necesito es (no sé si se puede) poder calcular con una sola consulta sql (trabajo con MySQL) las horas trabajadas por día. Hasta ahora busco todos los registros y los voy recorriendo con un bucle para ir sumando las horas, pero necesito hacerlo todo en una sola consulta. Un dato importante es que los empleados pueden entrar y salir varias veces y deben fichar para eso, con lo cual un empleado puede tener más de un ingreso y un egreso por día.
¿Se puede?
Muchas gracias.
Jerónimo
-
No te serviría cambiar la estructura de la tabla, y tener en una misma fila, entrada y salida de ese empleado?, es mas hasta se podria agregar un campo calculado, donde ya figura la diferencia de horas.
Aunque entre y salga varias veces, cada ciclo estaria guardado en una fila.
Desp a fin de mes, filtras x id_empleado, haces un SUM de la columna dif_horas y listo!
Habria que guardar en algun lado cuando el empleado entra, cual es el id de la tabla de ingresos, para desp cuando sale poder hacer un update de la salida
-
Hola, Waldo.
Estaba pensando en algo parecido a lo que comentás, pero me gusta más tu sugerencia.
Seguramente termine implementándolo de esa manera.
Muchas gracias.
Jerónimo
-
Ok, cualquier otra cosa en que te pueda ayudar me avisas ;)