Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 01-dic-2006, 08:16   #1 (permalink)
lucas_1250 ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
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.
lucas_1250 está desconectado   Responder Citando
Antiguo 01-dic-2006, 08:24   #2 (permalink)
Lord of freaks ha deshabilitado el karma
 
Avatar de Lord of freaks
 
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
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
Lord of freaks está desconectado   Responder Citando
Antiguo 01-dic-2006, 09:27   #3 (permalink)
lucas_1250 ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
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.
lucas_1250 está desconectado   Responder Citando
Antiguo 01-dic-2006, 09:50   #4 (permalink)
Lord of freaks ha deshabilitado el karma
 
Avatar de Lord of freaks
 
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
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-dic-2006 a las 10:00. Razón: Completar
Lord of freaks está desconectado   Responder Citando
Antiguo 01-dic-2006, 10:00   #5 (permalink)
Gabo77 sólo puede mejorar
 
Avatar de Gabo77
 
Fecha de Ingreso: noviembre-2006
Mensajes: 352
Código:
SELECT
        IDALUMNO, AVG(NOTA)
FROM
        NOTAS
GROUP BY
        IDALUMNO
HAVING
        SUM(IDTIPONOTA) = 6
Saludos!
Gabo77 está desconectado   Responder Citando
Antiguo 01-dic-2006, 10:40   #6 (permalink)
lucas_1250 ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
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.
lucas_1250 está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 2,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:27.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93