Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/09/2013, 04:58
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Suma de datos uniendo varias tablas

Código MySQL:
Ver original
  1. SELECT a.Codigo as codigo,
  2.              a.anio_estudio,
  3.              m.materia_principal,
  4.              p.materia,
  5.              SUM(p.promedio_anual) AS promediopt
  6. FROM (alumnos a INNER JOIN promedios p ON a.codigo=p.codigo)
  7.           INNER JOIN m.malla ON m.anio_estudio=a.anio_estudio
  8.                          AND p.materia=m.materias_complementarias
  9. WHERE m.materia_principal='MATEMATICA'
  10. GROUP BY a.Codigo as codigo,
  11.              a.anio_estudio,
  12.              m.materia_principal,
  13.              p.materia;

Código MySQL:
Ver original
  1. SELECT a.Codigo as codigo,
  2.              a.anio_estudio,
  3.              m.materia_principal,
  4.              SUM(p.promedio_anual) AS promediopt
  5. FROM (alumnos a INNER JOIN promedios p ON a.codigo=p.codigo)
  6.           INNER JOIN m.malla ON m.anio_estudio=a.anio_estudio
  7.                          AND p.materia=m.materias_complementarias
  8. WHERE m.materia_principal='MATEMATICA'
  9. GROUP BY a.Codigo as codigo,
  10.              a.anio_estudio,
  11.              m.materia_principal;

Tu estructura de tablas no és muy correcta.

Te recomiendo lo siguiente:

AniosEstudio
idAnio
anio

(1,"2012-2013")

Alumnos
idAlumnos
Nombre
...

Materias
idMat
materia

Matricula
idAlumnos
idAnio
idMat

MateriasComp
idMComp
materiaComp

RelMatMatComp
idRMMC
idMat
idMComp
idAnio
(esta seria tu Malla)

Notas
idNota
idAlumnos
idAnio
idRMMC
fecha
nota
...

La tabla promedios es un error puesto que sus datos son un calculo sobre las notas, nunca guardes un calculo si no el dato original.

12.2.7.1. JOIN Syntax
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 24/09/2013 a las 05:10