Programación Web y Scripting > PHP

 Listar dias NO ASISTIDOS PHP-MYSQL

(1/1)

16rgcu25:
Buenas tardes amigos.

Actualmete trabajo en un sistema de control de asistencia pero tengo ahora otro detallazo, yo hago unas consultas a la base de datos para que me arroje las inasistencias diarias de los empleados la cual es esta:

"SELECT nombre, apellido, cedula, puesto, Id FROM personal WHERE NOT EXISTS (SELECT * FROM horarios WHERE horarios.IdEmpleado = personal.Id AND Fecha='$fecha1') ORDER BY puesto"

Esta consulta funciona a la perfección, me genera una vista general de los empleados no asistidos en la fecha consultada. Ahora bien el detalle es que si deseo generar una  consulta entre un rango de fechas me sale un error (modifico la consulta de arriba y coloco un BETWEEN para la fecha y me da un error) Salen algunos empleados y otros no.

Ahora bien, quisiera que la consulta me genere una vista de los empleados por rango de fechas y por supuesto las fechas que no asisitio el empleado o los empleados, el otro detalle es excluir los sabados y domingos dentro de la busqueda.

Que podria hacer para resolver este detalle?

F_Tanori:
Hola.

Bueno no nos indicas el mensaje de error que obtienes. ¿tu campo fecha es tipo date/datetime/timestamp?, ¿los valores que le envias desde php estan correctamente formateados?,¿almacenas fechas de fines de semana y no quieres que estas se tomen como falta a los que no estan?, voy a suponer que si estas preguntas, y te dejo dos opciones a ver si te sirven..


--- Código: SQL ---SELECT P.nombre, P.apellido, P.cedula, P.puesto, P.Id,H.Fecha FROM personal PLEFT JOIN horarios H ON H.IdEmpleado = P.Id WHERE H.IdEmpleado IS NULL         AND H.Fecha BETWEEN '$fecha1' AND '$fecha2' --Opcion 1          --AND H.Fecha >= '$fecha1' AND H.Fecha <='$fecha2' --Opcion 2: Esta linea en lugar de la anterior        AND WEEKDAY(H.Fecha) NOT IN (5,6) -- que no sea Sabado o DomingoORDER BY P.puesto 

espero te sirvan.

Saludos

Navegación

[0] Índice de Mensajes

Ir a la versión completa