¿Cómo puede hacer una consulta en sql?

Hola...
Tengo una tabla (checkinout) que almacena las entradas y salidas de los empleados, con su hora y fecha.
Busco la manera de seleccionar las fechas que no tengo registrado (las veces que los empleados no registraron asistencia).
Por ejemplo una selección de asistencia
select userid, fecha_asistencia = min(convert(nvarchar(10),checktime,101))
from checkinout
where userid = 150 and checktime >= '20090223' and checktime <='20090207'
resultado
userid  fecha_asistencia
150      02/24/2009
150      02/25/2009
150      02/26/2009
El user falto los días 2009-02-23 y 2009-02-27 abra una manera de poder seleccionar esos días que no están registrado, algún método de comparación

1 Respuesta

Respuesta
1
Se me ocurre que puedes tener una tabla que contenga solo las fechas de todo el año las cuales se trabajan, ya con esta tabla podrás hacer la consulta respectiva de los días que no vino a laborar.
Entonces en una tabla pongo los días del año que se trabajan de lunes a sábado(excepto los domingo, días festivos y vacaciones),
aun que no entiendo como lo comparare con la tabla me puedes Brownsea sugerir con que comando o sentencia
Vamos a asumir que ya existe la tabla Tiempo (fecha, mes, año) con las fechas cargadas y tu tienes tu tabla checkinout, un qry con la siguiente consulta.
select a.userid, b.fecha
from (
select userid, fecha_asistencia = min(convert(nvarchar(10),checktime,101))
from checkinout
where userid = 150 and checktime >= '20090223' and checktime <='20090207') a
right join (select fecha from Tiempo where fecha between 20090223 and 20090207) b
where a.fecha_asistencia is null --Esto solo agregara los q no estan en tu listado de la tabla tiempo.
Este qry deberás ajustarlo a tu escenario, solo es una ejemplo de lo que podrías hacer.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas