Foros del Web » Bases de Datos » Mysql »

Consulta para sacar promedio de calificaciones ?

Estas en el tema de Consulta para sacar promedio de calificaciones ? en el foro de Mysql en Foros del Web. Hola a todos, estoy haciendo un sistema para colegios, y ahora tengo que sacar el promedio de 3 notas, y esta seria la nota anual, ...
  #1 (permalink)  
Antiguo 01/12/2006, 08:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 8 años
Puntos: 0
Consulta para sacar promedio de calificaciones ?

Hola a todos,

estoy haciendo un sistema para colegios, y ahora tengo que sacar el promedio de 3 notas, y esta seria la nota anual, lo estoy haciendo asi pero no da:
Código PHP:
select avg(notafrom notas where idalumno=and idmateria=and (idtiponota=or idtiponota=or idtiponota=3
el problema es que se requiere las 3 notas para promediar la nota anual y no dos o una, si en mi tabla notas falta el idtiponota=3, la consulta de arriba funciona igual, pero quiero que no funcione si falta una nota, que solo promedie cuando exista las 3 notas.

Gracias por adelantado,
saludos.
  #2 (permalink)  
Antiguo 01/12/2006, 08:24
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 9 años, 11 meses
Puntos: 2
Prueba con esto

Sacaría las media de notas del alumno 1 si quires la de todos para la materia dos sería la segunda consulta.

Código:
select avg(nota) from notas where idalumno=1 and idmateria=2 group by idalumno

select avg(nota) from notas where and idmateria=2 group by idalumno
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #3 (permalink)  
Antiguo 01/12/2006, 09:27
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 8 años
Puntos: 0
Hola Lord,

el caso es que tengo que tener las 3 notas(idtiponota=1,idtiponota=2, idtiponota=3) para poder sacar la nota anual, la consulta que me diste saca el promedio cuando hay una nota o dos. o existe otra forma de realizarlo?
Yo tengo una tabla notas:

idalumo | idmateria | idtiponota | nota|

en idtiponota coloco la el tipo de nota, por ejm. aqui se califica por trimestres, es decir para cada trimestre existe una nota, y hay 3 trimestres y la nota anual se calcula promediando las 3 notas. si idtiponota tiene el valor de 1 significa que esa nota es del I Trimestre, si 2 es del II Trimestre

la verdad es que la veo dificil en una sola consulta,
Gracias por la ayuda,
saludos.
  #4 (permalink)  
Antiguo 01/12/2006, 09:50
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 9 años, 11 meses
Puntos: 2
Hola Lucas_1250

Precisamente la segunda consulta saca la nota media del alumno global no en función del trimestre, ya que para eso tendría que filtrar, la consulta:

Código:
select avg(nota) from notas where and idmateria=2 group by idalumno
Agrupa los registros por alumno y saca la media de cada uno en avg(nota) (creo vamos) si quieres separarlos ya tendrás que filtrar el GROUP BY con un HAVING seguramente


------------ EDICION POSTERIOR --------------------------

Mira probe con esta consulta y creo que explicará mejor lo que te digo pruebala y modifica a tu gusto.

Código:
SELECT 

MAX(nota) as su_maxima,
MIN(nota) as su_minima,
(SELECT MAX( nota ) FROM nota) AS maxima_total,
(SELECT MIN( nota ) FROM nota) AS minima_total,
avg( nota ) AS media

FROM notas 

WHERE idmateria=2 

GROUP BY idalumno
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa

Última edición por Lord of freaks; 01/12/2006 a las 10:00 Razón: Completar
  #5 (permalink)  
Antiguo 01/12/2006, 10:00
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 7 años, 9 meses
Puntos: 6
Código:
SELECT
        IDALUMNO, AVG(NOTA)
FROM
        NOTAS
GROUP BY
        IDALUMNO
HAVING
        SUM(IDTIPONOTA) = 6
Saludos!
  #6 (permalink)  
Antiguo 01/12/2006, 10:40
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 8 años
Puntos: 0
Gracias Lord of freaks por la ayuda, tambien a Gabo77 por el codigo muy bueno, realmente me mataron, excelente, y lo mas en poco tiempo.

que la pasen bien,
saludos.
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 02:10.
SEO by vBSEO 3.3.2