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

Filtar consulta

Estas en el tema de Filtar consulta en el foro de Mysql en Foros del Web. Hola! Tengo una consulta para obtener los alumnos reprobados (compara con la calificación minima aprobatoria de otra tabla) Cita: Editado: Codigo de programación no permitido ...
  #1 (permalink)  
Antiguo 24/04/2013, 12:25
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Filtar consulta

Hola! Tengo una consulta para obtener los alumnos reprobados (compara con la calificación minima aprobatoria de otra tabla)
Cita:
Editado: Codigo de programación no permitido en Foros de Bases de Datos
Y asi muestro los resultados

Cita:
Editado: Codigo de programación no permitido en Foros de Bases de Datos
Hasta el momento funiona bien, logro ver a los alumnos reprobados (con el promedio menor a la calificación mínima aprobatoria)
Pero necesito mostrar solo a los que tengan 4 o más materias reprobadas...
Aqui surge mi duda como filtro a esos alumnos
Desde ya gracias

Última edición por gnzsoloyo; 24/04/2013 a las 12:43
  #2 (permalink)  
Antiguo 24/04/2013, 12:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Filtar consulta

Briss: Postea sólo SQL en este foro (normas del foro de BBDD).
Te sugiero que captures la consulta una vez creada (y no el código de cómo la creas), y postees eso, para ver lo que realmente recibe MySQL.
Lo que te puedo ir sugiriendo es un esquema como
Código MySQL:
Ver original
  1. SELECT a, b, c
  2. FROM TABLA
  3. WHERE id IN(SELECT id FROM TABLA GROUP BY xxx HAVING COUNT(*)>=4);

´Habría que ver los datos y las tablas, pero el esquema es mas o menos ese.
__________________
¿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 24/04/2013, 15:44
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Filtar consulta

Gracias lo probare
  #4 (permalink)  
Antiguo 24/04/2013, 17:34
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Filtar consulta

Hice la prueba así
SELECT nombre,count(nombre)
FROM `notas`
WHERE nota <6
GROUP BY nombre
HAVING count(nombre)>3

Y funciona perfecto pero necesito trabajarlo con 3 tablas
"SELECT * FROM alumnos , programa, calificar where alumnos.idalumno=calificar.idalumno and
alumnos.programa=programa.idprograma and
calificar.promedio<programa.Minima";

y no he podedido hacerlo sin error de sintaxis
  #5 (permalink)  
Antiguo 24/04/2013, 18:02
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Filtar consulta

lo puse asi

"SELECT idalumno,count(idalumno)
FROM alumnos,programa, calificar
WHERE alumnos.idalumno=calificar.idalumno and
alumnos.programa=programa.idprograma
and calificar.promedio<programa.Minima
GROUP BY idalumno
HAVING count(idalumno)>3";

Pero me arroja lo sig
Column 'idalumno' in field list is ambiguous
  #6 (permalink)  
Antiguo 24/04/2013, 18:14
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Filtar consulta

Bueno leyendo por ahi encontre que este era mi problema por si alguien le sirve

Eso sucede cuando en varias tablas tienes el mismo nombre de la columna y no le has indicado por medio del alias o el nombre de la tabla que pertenece. En esos casos debes indicar nombre y apellido, es decir nombreTabla.nombreColumna o aliasTabla.nombreColumna.

Etiquetas: php, select, sql, tabla
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 22:37.