Comunidad de diseño web y desarrollo en internet online

consulta en tres tablas

Citar            
MensajeEscrito el 26 Abr 2011 12:23 pm
Tengo una tabla que se llama notas que tiene los siguientes campos:
idnota,idalumno,idmateria,idcurso,idexamen,nota
Otra tabla consolidado(Donde esta la nota definitiva de cada uno de los alumnos) y tiene los siguientes campos:
idconsolidado,idalumno,idmateria,idcurso,notafinal

Y otra que se llama fallas (donde se registran las fallas de los alumnos) y tiene los siguientes campos:
idfalla,idalumno,idmateria,idcurso,cantidad.

quiero hacer una consulta en la que me muestre lo siguiente:
idalumno,idexamen,nota,notafinal,cantidad.

como podria hacer esa consulta?,agradeceria mucho su gran ayuda.

Por crmauricio

52 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Abr 2011 04:07 pm
:shock: se puede hacer pero para que necesitas tener la nota y la notafinal en un mismo registro?

Por luxorithm

0 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 26 Abr 2011 04:23 pm
Gracias, por tu interes luxorithm, la nota es la nota de un examen (idexamen) que deacuerdo al periodo, se pueden hacer 2 o tres examenes, esas notas se suman y se dividen en el numero de notas y ese resultado, lo envia a la tabla consolidado que es la que tiene la nota final.

Por crmauricio

52 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Abr 2011 06:05 pm
Pero si puede haber más de una nota (parcial) y solo una nota final, la consulta que quieres obtener no tiene sentido. Debes obtener la nota final y en el mismo registro una nota (parcial) pero ¿cuál de todas?.

Por otro lado la normalización de la base de dato que has hecho se ve sospechosa. Por ejemplo, la nota de un examen es propiedad de un examen y solamente de uno, ¿por qué crear una nueva entidad "notas" que de todos modos contendrá un solo registro útil?, el dato "nota" debe ser campo de la tabla "examenes". La tabla "notas" es redundante.

La entidad "examen" relaciona con un y solo un alumno, y con una y solo una materia (dos alumnos no pueden ser autores del mismo examen, así como dos materias distintas no pueden dar el mismo examen). Así la entidad "examen" se compone de idexamen, idalumno, idmateria y nota (y otros datos más).

La entidad "materia" está relacionada con el curso, a menos que una misma materia valga para más de un curso, en cuyo caso hace falta otra tabla que relacione cursos con materias y viseversa. En cualquier caso la entidad "materia" tiene las propiedades idmateria, idalumno, idcurso, nombre y nota_final.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 26 Abr 2011 11:32 pm
gracias una vez mas DriverOp por tus buenos comentarios,asi aprendemos muchos de los que estamos empezando en este cuento, la cuestión es la siguiente:
en la tabla notas se guarda la nota de cada alumno, que segun el periodo puede tener varios examenes son las notas que se guardan en esa tabla y deacuerdo a la materia asi:

idnota nota periodo examen asignatura curso idalumno

1 3.2 1 12 3 8a 1454

2 3.6 1 13 3 8a 1454


luego en sql hago una rutina para que me guarde en la tabla consolidado en el campo nota final, la suma de las notas de ese alumno 3.2 +3.6 /2 o sea 3.4 asi

idconsolidado notafinal periodo asignatura curso idalumno
1 3.4 1 3 8a 1454


Lo que quiero es que me muestre lo siguiente:

idalumno nota notafinal asignatura curso periodo examen

1454 3.2 3.4 3 8a 1 12
1454 3.6 3.4 3 8a 1 13



Si me puedes ayudar te lo agradeceria muchisimo, de ante mano gracias por tomarte el tiempo y hacer que otros aprendamos.

Por crmauricio

52 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Abr 2011 06:50 am
cada nota además de su ponderación (1→7 o 1→10) tiene un porcentaje respecto a la nota final por ejemplo:
una tarea o trabajo tiene un porcentaje de 0.5% para la nota final,en cambio un examen final fácilmente sobrepasa el 30% este porcentaje puede ser expresado como multiplicador en un campo numerico decimal (double)

asi es como configuraría yo la DB

notas:

  • id INT, // PK autonumerico
  • id_curso INT,// FK(foreign key)
  • id_alumno INT,// FK (usuarios)
  • id_profesor INT,//FK (usuarios)
  • nota DOUBLE,
  • fecha DATE,
  • ponderacion DOUBLE,
  • nota_valida BOOLEAN, // ¿a eso te refieres con fallas?

curso

  • id INT, //PK autonumerico siempre los llamo igual
  • id_materia INT,//
  • periodo_inicio DATE,
  • periodo_fin DATE,


materia

  • id INT, //PK autonumerico siempre los llamo igual
  • nombre varchar,
  • codigo varchar,



profesores4cursos

  • id INT, //PK autonumerico siempre los llamo igual
  • id_curso INT,//
  • id_profesor INT,//FK usuarios
  • periodo_inicio DATE,
  • periodo_fin DATE,

asi es facil calcular la nota total, solo hay que saberhacer bien el calculo, por cierto, este calculo puede ser echo directamente en el SELECT

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.