Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/05/2014, 03:21
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta MySql - Ultimos 3 registros que cumplan una condición

Creo que estais complicando la solución.

Cita:
...saber que alumnos no han asistido a las 3 ultimas clases.
Código MySQL:
Ver original
  1. SELECT alumno_id
  2. FROM Asistencia
  3. AND asiste=False;

Eso nos da los alumnos que tienen alguna falta de asistencia en los tres ultimos dias.


Código MySQL:
Ver original
  1. SELECT alumno_id, count(*) Faltas
  2. FROM Asistencia
  3. AND asiste=False
  4. GROUP BY alumno_id;


Con un LEFT JOIN con Alumnos podriamos obtener la lista de alumnos completa con el numero de faltas en los ultimos tres dias.

Código MySQL:
Ver original
  1. SELECT Sbc.alumno_id, A.nombre, A.apellidos, IFNULL(Sbc.Faltas,0) Faltas
  2. FROM Alumnos A LEFT JOIN
  3.         (SELECT alumno_id, count(*) Faltas
  4.              FROM Asistencia
  5.              WHERE dia_de_clase>=DATE_SUB(CURRENT_DATE(),INTERVAL 3 DAY)
  6.              AND asiste=False
  7.              GROUP BY alumno_id) Sbc
  8.        ON A.id=Sbc.alumno_id;

La tabla Asistencia seria mejorable, eliminando el campo "asiste" y guardando solo los alumnos que asiten, reduciendo así la información guardada. La solución al tema anterior seria otra claro.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 07/05/2014 a las 03:33