• Jueves 28 de Marzo de 2024, 23:48

Autor Tema:  Listar dias NO ASISTIDOS PHP-MYSQL  (Leído 3295 veces)

16rgcu25

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Listar dias NO ASISTIDOS PHP-MYSQL
« en: Lunes 3 de Febrero de 2014, 19:16 »
0
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

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re:Listar dias NO ASISTIDOS PHP-MYSQL
« Respuesta #1 en: Domingo 9 de Febrero de 2014, 08:06 »
0
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
  1. SELECT P.nombre, P.apellido, P.cedula, P.puesto, P.Id,H.Fecha
  2. FROM personal P
  3. LEFT JOIN horarios H ON H.IdEmpleado = P.Id
  4. WHERE H.IdEmpleado IS NULL
  5.          AND H.Fecha BETWEEN '$fecha1' AND '$fecha2' --Opcion 1
  6.          --AND H.Fecha >= '$fecha1' AND H.Fecha <='$fecha2' --Opcion 2: Esta linea en lugar de la anterior
  7.         AND WEEKDAY(H.Fecha) NOT IN (5,6) -- que no sea Sabado o Domingo
  8. ORDER BY P.puesto
  9.  


espero te sirvan.

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================