|
Responder
|
| Autor | |
informagic
Nuevo
Unido: 03/Marzo/2020 Localización: Valencia Estado: Sin conexión Puntos: 3 |
Tema: Consulta unir RegistroEntrada con RegistroSalidaEnviado: 03/Marzo/2020 a las 13:05 |
|
Estoy realizando una base de datos para el control horario. En una tabla tengo los registros de entrada del los empleados con los mismos campos que en la tabla de los registros de salida, y son los siguientes: Tabla RegEntrada: LogID - UserCode - CheckType - Fecha - HoraEntrada Tabla RegSalida: LogID - UserCode - CheckType - Fecha - HoraSalida El campo CheckType es = 0 cuando es una entrada y 1 cuando es una salida Las tablas estan relacionas por el UserCode Lo que me gustaria conseguir es una consulta que busque el primer registro de salida despues de un registro de entrada de un empleado. Es decir si un empleado realiza la entrada un dia a las 9:00 la consulta debe buscar el primer registro de salida cuya fecha sea igual o mayor a la fecha de entrada y la hora de salida sea mayor a la hora de entrada. El resultado final serian todos los registros unidos los registros de entrada de un empleado junto con el registro de salida que le corresponda y a partir de ahi poder calcular las horas trabajadas. Espero haberme explicado y espero que alguien me pueda ayudar. Gracias de antemano
|
|
|
Informagic
|
|
![]() |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 03/Marzo/2020 a las 13:55 |
|
Hola informagic y bienvenido al foro,
Como dices "estoy realizando" asumiré que no está en producción y me arriesgaré a proponer un cambio: Tabla única con todos los campos y fin del problema. Conceptualmente nadie puede salir sin haber entrado por lo que es relativamente simple localizar el registro del usuario de entrada sin salida y actualizarlo en el momento de salir. ¿o lo he simplificado demasiado? Un saludo |
|
![]() |
|
informagic
Nuevo
Unido: 03/Marzo/2020 Localización: Valencia Estado: Sin conexión Puntos: 3 |
Enviado: 03/Marzo/2020 a las 17:24 |
|
Hola Xavi, Gracias por contestar. Efectivamente estamos en proceso de produccion. El problema es que yo recibo los registros desde un terminal de huella y el terminal los vuelca a una sola tabla, en esa tabla se distinguen los registros de entrada y de la salida en el campo CheckType (0=entrada / 1=salida) y ademas la fecha y la hora las guarda en un solo campo llamado Checktime con este formato (dd/mm/aaaa hh:mm:ss). Yo tengo una consulta que separa el campo Checktime en dos campos, uno para la fecha y otro para la hora dentro de esa misma tabla donde esta los registros, de esta forma tengo la fecha y la hora en dos campos distintos Depues tengo dos consultas, una para localizar los registros de entrada con su fecha y hora y la otra para localizar los registros de salida con su fecha y hora. Ahora la idea seria realizar una consulta de esas dos consultas, a las que he llamado Registros_Entrada y Registros_Salida. Quiero que esa consulta fuese capaz de realizar lo que te indicaba en le primer mensaje, es decir, una consulta que busque el primer registro de salida despues de un
registro de entrada de un empleado. Es decir si un empleado realiza la
entrada un dia a las 9:00 la consulta debe buscar el primer registro de
salida cuya fecha sea igual o mayor a la fecha de entrada y la hora de
salida sea mayor a la hora de entrada.
El resultado final
serian todos los registros unidos los registros de entrada de un
empleado junto con el registro de salida que le corresponda y a partir
de ahi poder calcular las horas trabajadas. Esa es la idea Espero haberme explicado Gracias |
|
|
Informagic
|
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |