Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Fechas Faltantes SQL SERVER

Estas en el tema de Fechas Faltantes SQL SERVER en el foro de SQL Server en Foros del Web. hola buen día, Tengo una tabla de ASISTENCIAS donde se van almacenando los registros de entrada y salida de cada empleado. Tengo otra tabla TIPO_HORARIO ...
  #1 (permalink)  
Antiguo 15/08/2012, 17:30
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Fechas Faltantes SQL SERVER

hola buen día,
Tengo una tabla de ASISTENCIAS donde se van almacenando los registros de entrada y salida de cada empleado.
Tengo otra tabla TIPO_HORARIO donde se configura el tipo de horario de cada empleado indicando hora de entrada y salida, así como día en que labora (l,m,m,j,v,s,d) respectivamente.

Quisiera saber como puedo hacer para obtener el rango de días que faltó cada empleado dependiendo del día que le toca laborar.

select top 14 Tipo_Movimiento,FECHA,Hora_Sistema from Control_Asistencias
where Num_Empleado=63

Tipo_Movimiento Hora_Sistema
ENTRADA 2012-07-16 08:38:59.327
SALIDA 2012-07-16 18:39:01.307
ENTRADA 2012-07-17 19:06:39.367
SALIDA 2012-07-17 00:00:00.000
ENTRADA 2012-07-18 08:44:32.553
SALIDA 2012-07-18 18:35:16.407
ENTRADA 2012-07-19 09:09:21.627
SALIDA 2012-07-19 18:52:16.177
ENTRADA 2012-07-20 09:07:07.850
SALIDA 2012-07-20 18:37:37.650
SALIDA 2012-07-22 00:00:00.000
ENTRADA 2012-07-23 08:47:25.090
SALIDA 2012-07-23 18:47:06.273
ENTRADA 2012-07-24 08:52:30.557

LA CONSULTA NUEVA TENDRÍA QUE DECIRME QUE FALTÓ EL 2012-07-21 Y 2012-07-22

Ayudaaaaaaaa!!

Saludos,
Atte Mike
  #2 (permalink)  
Antiguo 16/08/2012, 07:13
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Fechas Faltantes SQL SERVER

Lo mejor seria con una tabla de calendario..
en donde se identifiquen los dias habiles para saber cuales son las fechas que debio asistir el trabajador y en cuales no se presento..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 16/08/2012, 16:49
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Fechas Faltantes SQL SERVER

Muchas gracias Andres95, ya hice la tabla CALENDARIO, ahora como hago para sacar solo las fechas que no existen en la tabla ASISTENCIAS, estoy intentando esto pero no queda.


SELECT CO.FECHA,EC.CalendarDate
FROM Control_Asistencias CO
left outer join
Empleados_Calendario EC
On CO.FECHA = EC.CalendarDate
WHERE CO.Num_Empleado=1
  #4 (permalink)  
Antiguo 17/08/2012, 06:56
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Fechas Faltantes SQL SERVER

Tu tabla base debería ser la de calendario.. en esta liga se explica brevemente el uso de combinaciones externas (outer joins)...

Usar combinaciones externas

Ademas te faltaría el rango de fechas que deseas consultar...


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 17/08/2012, 08:20
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Fechas Faltantes SQL SERVER

Ya logré resolverlo con el sig código:

select t1.Num_Empleado,t1.FECHA,T2.CALENDARDATE
FROM Control_Asistencias t1
RIGHT outer join Empleados_Calendario T2
ON t1.FECHA=T2.CALENDARDATE
AND t1.Num_Empleado=1
AND t1.Tipo_Movimiento='ENTRADA'
WHERE T2.CALENDARDATE between '2012-08-01' and '2012-08-16'
ORDER BY T2.CALENDARDATE


De antemano gracias por tu tiempo.

Saludos

Etiquetas: dias, faltantes, joins
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:23.