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

Consulta a partir de otra consulta ?

Estas en el tema de Consulta a partir de otra consulta ? en el foro de Mysql en Foros del Web. Hola a todos, lo dificil va a ser explicarme, tengo una tabla donde guardo las notas de los alumnos, esta tabla tiene el idalumno, idmateria, ...
  #1 (permalink)  
Antiguo 23/01/2007, 19:14
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 17 años, 6 meses
Puntos: 0
Consulta a partir de otra consulta ?

Hola a todos,

lo dificil va a ser explicarme, tengo una tabla donde guardo las notas de los alumnos, esta tabla tiene el idalumno, idmateria, idtiponota(aqui pongo el trimestre correspondiente si idtiponota=5 corresponde al PC del 1 Trimestre, si idtiponota=6 corresponde al DPS del 1 Trimestre(no se preucupen por saber lo que es PC o DPS, ni yo estoy seguro ademas no es importante), la suma de la nota del PC+DPS es la nota del 1 trimestre, es decir siempre tengo que sumar las notas del PC+DPS o lo que es lo mismo sumar las filas donde haya idtiponota=5+idtiponota=6), nota
la consulta que hice es esta
Código PHP:
SELECT a.ida.appaternoa.apmaternoa.nombren.idparalelon.idmateriasumn.nota ) AS promedio
FROM alumnos a
inscripciones inotas n
WHERE a
.id i.idalumno
AND a.id n.idalumno
AND i.estado '1'
AND i.gestion '2007'
AND i.gestion n.gestion
AND i.estado a.estado
AND n.idtiponota <> '7'
AND n.idtiponota <> '8'
AND n.idtiponota <> '9'
AND n.idtiponota <> '10'
AND n.idtiponota <> '13'
AND n.idtiponota <> '14'
GROUP BY n.idalumnon.idmateria
HAVING sum
n.idtiponota ) = '11'
ORDER BY promedio DESC 
y da el sgte resultado:
Código PHP:
id  appaterno  apmaterno  nombre  idparalelo  idmateria  promedio  
15 Galvez     Barrios    María Yenny 1A07      4             45 
15 Galvez     Barrios    María Yenny 1A07      1             25 
15 Galvez     Barrios    María Yenny 1A07      6             25 
15 Galvez     Barrios    María Yenny 1A07      3             20 
Tengo un solo alumno y sus notas por materia correspondientes al 1 Trimestre. ahora lo tengo que hacer es calcular el promedio a la tabla anterior y que salga una fila donde diga algo asi:
Código PHP:
id  appaterno  apmaterno  nombre      idparalelo          promedio  
15  Galvez     Barrios    María Yenny     1A07              28.75 
el objetivo es sacar una sola nota que sea el promedio de las notas de todas las materias que corresponden a un trimestre, en este ejemplo corresponde al 1 Trimestre,
como puedo hacer eso?
¿ se puede hacer en una sola consulta ?

Gracias por la ayuda,
saludos.
  #2 (permalink)  
Antiguo 26/01/2007, 09:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Consulta a partir de otra consulta ?

Si haces un Count de los valores de las notas y luego el resultado lo divides entre el número de campos seleccionados para hacer la suma, debería de darte el resultado promedio
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #3 (permalink)  
Antiguo 26/01/2007, 10:17
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Consulta a partir de otra consulta ?

Que tal Lucas.

Sí el query que pones funciona, y quieres obtener lo siguiente:
Código PHP:
id  appaterno  apmaterno  nombre      idparalelo          promedio   
15  Galvez     Barrios    Mar
&#237;a Yenny     1A07              28.75 
La línea que dice:
SELECT a.id, a.appaterno, a.apmaterno, a.nombre, n.idparalelo, n.idmateria, sum( n.nota ) AS promedio


Debe decir:
Código:
SELECT a.id, a.appaterno, a.apmaterno, a.nombre, n.idparalelo, n.idmateria, AVG( n.nota ) AS promedio
La función de agregado AVG, devuelve la media de los valores de un grupo. Los valores nulos se pasan por alto. Obviamente el campo usado en AVG, debe ser del tipo númerico.

Saludos y espero que sea lo que buscas.

---------------------------------------------
La línea es:
Código:
SELECT a.id, a.appaterno, a.apmaterno, a.nombre, n.idparalelo, AVG( n.nota ) AS promedio

Última edición por daniel00; 26/01/2007 a las 16:13 Razón: Tenía un error.
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 17:28.