Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2011, 18:42
donramone
 
Fecha de Ingreso: junio-2009
Mensajes: 19
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Es correcto el planteo de esta consulta?

Hola a todos, miren me gustaria que analicen un consulta y me de su opinion si puede ser.
La cosa es que estoy haciendo una pantalla con carga de notas (calificaciones) de un colegio al seleccionar una materia, un curso (grado), una seccion ( primera o segunda) y el numero de parcial que se va a cargar (primer parcial, segu, tercero, recuperatorio) me deberia tirar una lista con todos los alumnos que estan anotados en esa materia y que me muestre los que ya tienen ingresado alguna nota.
Bueno logre hacer esa consulta pero sino uso el operador DISTINCT me devuelve demasiados registros repetidos y ahí me entro el temor si estara bién mi planteo o es algo que funciona pero complicando mucho las cosas, por eso le pido ayuda para que me digan su opion de si es correcto mi planteo o lo deberia hacer de otro modo.
Desde ya muchisimas gracias.

la consulta:

Código SQL:
Ver original
  1. SELECT ac.Legajo, a.Nombre, n.ValorNota
  2. FROM Alumno AS a
  3. INNER JOIN AlumnoCarrera AS ac
  4. ON ac.id_alumno = a.id_alumno
  5. INNER JOIN alumnomateria AS am
  6. ON am.legajo = ac.legajo
  7. LEFT JOIN (SELECT * FROM Nota WHERE Id_materia = Xmateria AND ParcialNumero = Xparcial) AS n
  8. ON n.legajo = ac.legajo
  9. WHERE am.seccion = Xseccion
  10. ORDER BY ac.Legajo

*donde dice Xmateria, Xparcial y Xseccion son valores que le paso desde variables

Las tablas que estoy usando estan compuestas asi:
Alumno: Id_alumno (pk) ...datos personales
AlumnoCarrera: legajo(pk), id_Alumno, id_carrera
AlumnoMateria: legajo(pk), id_materia(pk), estado, seccion, fechaInscripcion
Nota: id_nota (pk), Legajo, ValorNota, ParcialNumero, cicloLectivo, id_materia(fk)


pd: si alguien se pregunta por que uso una tabla Alumnocarrera es por que puede existir la posibilidad de que un alumno se anote a mas de una carrera.
Nuevamente muchas gracias y disculpen si es medio tonto lo que pregunto, estoy haciendo esto a prueba y error y me ayuda mucho las opiniones que encuentro.
Salud!