Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2013, 14:25
tvzbien
 
Fecha de Ingreso: abril-2011
Mensajes: 49
Antigüedad: 13 años
Puntos: 3
unknown column in 'on clause'

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 MySQL:
Ver original
  1. //verifico que al menos haya asistido a una clase
  2. 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
  3.                 INNER JOIN inscripciones r3 ON r3.id_act = r0.id_act
  4.                 INNER JOIN actividades r1 ON r1.id_act = r0.id_act
  5.                 INNER JOIN alumnos r2 ON r2.dni = r0.dni
  6.                 WHERE r0.dni=r3.dni AND r3.id_act=$identificacion_curso AND (r0.asistencia = 'presente' OR r0.asistencia='P')
  7.                 GROUP BY r0.dni, r0.id_act
  8.                 HAVING porcentaje >= 1
  9.                 ORDER BY r1.actividad ;

la cual la muestro asi:

Cita:
Editado: Codigo de programacion no permitido en foros de BBDD.
todas este código dentro de un while.
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 MySQL:
Ver original
  1. //cuento edades
  2. 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
  3.                 INNER JOIN inscripciones r3 ON r3.id_act = r0.id_act
  4.                 INNER JOIN actividades r1 ON r1.id_act = r0.id_act
  5.                 INNER JOIN alumnos r2 ON r2.dni = r0.dni
  6.                 INNER JOIN alumnosedades r4 ON r4.id_act = r0.id_act
  7.                 WHERE r0.dni=r3.dni AND r3.id_act=$identificacion_curso AND (r0.asistencia = 'presente' OR r0.asistencia='P') and r4.edad > 25
  8.                 GROUP BY r4.dni, r4.id_act
  9.                 HAVING porcentaje >= 1
  10.                 ORDER BY r4.alumnosedades

y la quiero mostar así, todo esto también dentro del mismo while:


Cita:
Editado: Codigo de programacion no permitido en foros de BBDD.
pero me devuelve el error de Unknown column 'r4.alumnosedades' in 'order clause'. Ya he intentado hacer todo tipo de cambios pero no logro que me cuente , por ej, la contidad 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.

Última edición por gnzsoloyo; 15/10/2013 a las 15:11 Razón: Codigo de programacion no permitido en foros de BBDD