Hola a todos, como todo novato es que tengo una gran laguna mental en la cual no puedo salir. Tengo esta consulta la cual funciona muy bien. Me devuelve la cantidad de alumnos que han asistido al menos a una clase por cada curso.
Código SQL:
Ver original//verifico que al menos haya asistido a una clase
SELECT r0.dni, r2.apellido_nombre, COUNT(r0.dni) Cant_presente, r1.teoricas, ( (COUNT(r0.dni) * 100) / r1.teoricas ) porcentaje, r1.actividad FROM asistencia r0
INNER JOIN inscripciones r3 ON r3.id_act = r0.id_act
INNER JOIN actividades r1 ON r1.id_act = r0.id_act
INNER JOIN alumnos r2 ON r2.dni = r0.dni
WHERE r0.dni=r3.dni AND r3.id_act=$identificacion_curso AND (r0.asistencia = 'presente' OR r0.asistencia='P')
GROUP BY r0.dni, r0.id_act
HAVING porcentaje >= 1
ORDER BY r1.actividad ;
la cual la muestro asi:
El problema es que ahora necesito saber el rango de edades de esos alumnos asistidos al menos a una clase. En la base he hecho una view en donde tengo todas las edades de todos los alumnos, sin filtrar por asistencias, ni inscripción de cursos ni nada. La consulta es esta:
Código SQL:
Ver original//cuento edades
SELECT r0.dni, r2.apellido_nombre, COUNT(r0.dni) Cant_presente, r1.teoricas, ( (COUNT(r0.dni) * 100) / r1.teoricas ) porcentaje, r1.actividad, r4.edad
FROM asistencia r0
INNER JOIN inscripciones r3 ON r3.id_act = r0.id_act
INNER JOIN actividades r1 ON r1.id_act = r0.id_act
INNER JOIN alumnos r2 ON r2.dni = r0.dni
INNER JOIN alumnosedades r4 ON r4.id_act = r0.id_act
WHERE r0.dni=r3.dni AND r3.id_act=$identificacion_curso AND (r0.asistencia = 'presente' OR r0.asistencia='P') AND r4.edad > 25
GROUP BY r0.dni, r0.id_act
HAVING porcentaje >= 1
ORDER BY r1.actividad
y la quiero mostar así, todo esto también dentro del mismo while:
pero me devuelve el error " Query execution was interrupted ". Ya he intentado hacer todo tipo de cambios pero no logro que me cuente , por ej, la cantidad de alumnos mayores de 25 años que asistieron al menos a una clase. Desde ya muchas gracias y espero ansiosamente que puedan entenderme y ayudarme.