Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

unknown column in 'on clause'

Estas en el tema de unknown column in 'on clause' en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/10/2013, 14:25
 
Fecha de Ingreso: abril-2011
Mensajes: 49
Antigüedad: 13 años, 6 meses
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
  #2 (permalink)  
Antiguo 15/10/2013, 17:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: unknown column in 'on clause'

Cita:
Unknown column 'r4.alumnosedades' in 'order clause'
El error es bien claro: En la tabla "alumnosedades" no existe ningúna columna denominada "alumnosedades"... en todo caso debería ser "edad", que es el nombre de la columna a que haces referencia en el WHERE:
Código MySQL:
Ver original
  1.     r0.dni,
  2.     r2.apellido_nombre,
  3.     count(r0.dni) Cant_presente,
  4.     r1.teoricas,
  5.     ((count(r0.dni) * 100) / r1.teoricas ) porcentaje,
  6.     r1.actividad,
  7.     r4.edad
  8. FROM asistencia r0
  9.     INNER JOIN inscripciones r3 ON r3.id_act = r0.id_act
  10.     INNER JOIN actividades r1 ON r1.id_act = r0.id_act
  11.     INNER JOIN alumnos r2 ON r2.dni = r0.dni
  12.     INNER JOIN alumnosedades r4 ON r4.id_act = r0.id_act
  13.     r0.dni=r3.dni
  14.     AND r3.id_act=$identificacion_curso
  15.     AND (r0.asistencia = 'presente' OR r0.asistencia='P')
  16.     AND r4.edad > 25
  17. GROUP BY r4.dni, r4.id_act
  18. HAVING porcentaje >= 1
  19. ORDER BY r4.edad

Nota: Lee las normas del foro de bases de datos, por favor. No se permite código de programación de ningún lenguaje en estos subforos. Para temas de programación ya están los foros de cada lenguaje.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/10/2013, 06:55
 
Fecha de Ingreso: abril-2011
Mensajes: 49
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: unknown column in 'on clause'

Ufff que erro grosero el mío. Ante todo muchas gracias por la respuesta gnzsoloyo. Así es, si es cierto lo de la tabla pero lo he corregido y sigo sin poder tener los resultados de las consultas. Ahora me devuelve el siguiente error " Query execution was interrupted " y no me trae ningún dato.
  #4 (permalink)  
Antiguo 16/10/2013, 07:12
 
Fecha de Ingreso: abril-2011
Mensajes: 49
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: unknown column in 'on clause'

gnzsoloyo ya abrí el mismo tema pero en la parte de php, pero ahora con el título " Query execution was interrupted " que es el que me sale luego de haber realizado tu correcón. Muchas gracias por la sugerencia y perdón por el descuido. Saludos cordiales.
  #5 (permalink)  
Antiguo 16/10/2013, 08:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: unknown column in 'on clause'

Cita:
Iniciado por tvzbien Ver Mensaje
Ufff que erro grosero el mío. Ante todo muchas gracias por la respuesta gnzsoloyo. Así es, si es cierto lo de la tabla pero lo he corregido y sigo sin poder tener los resultados de las consultas. Ahora me devuelve el siguiente error " Query execution was interrupted " y no me trae ningún dato.
Eso tiene todo el aspecto de un timeout, aunque ha que ver el contexto de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: column, join, select, sql, unknown
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:24.