consulta Calificaciones
Hola a todos!
Estoy haciendo reportes en Quick reports de boletas de calificaciones uso delphi 2010 y SQL server, mi problema es que tengo una tabla calificaciones y guardo una calificacion en ordinario y extraordinario con diferente id pero misma materia, necesito poder mostrar en una tupla el nombre de la materia y las dos calificaciones. mi tabla esta asi Calificaciones id idalumno idmateria calificacion tipoEvaluacion (aqui guardo Ordinario o Extraordinario, segun sea el caso y quiero que en mi consulta se vea asi: ejemplo id idmateria calificacionOrdinario calificacionExtra 1- 1---------5------------------- 7 |
Creo que el diseño que estás haciendo es incorrecto. Estás mezclando en 1 tabla cosas que deberías tener en 2.
Una tabla para alumnos y otra tabla para Calificaciones. Si aun así decides tenerlo todo en una tabla, tal vez algo que te facilitaría el trabajo sería esto: Calificaciones id idalumno idmateria calificacionOrdinaria calificacionExtraordinaria No me parece correcto pero al menos es mejor que el caso que tú propones ya que tienes 1 sólo registro por alumnos y materia y no repites esos datos en varios registros (cosa que te podría provocar incongruencias). |
Esto puede que sea lo que quieres.
Select distinct idalumno, idmateria, CASE when tipoEvaluacion = 'Ordinaria' then calificacion else 0 end CalOrdinaria, 0 CalExtraOrdinaria into #calificacion from Calificacion where tipoEvaluacion = 'Ordinaria' union Select distinct idalumno, idmateria, 0, CASE when tipoEvaluacion = 'Extra Ordinaria' then calificacion else 0 end CalExtraOrdinaria from Calificacion where tipoEvaluacion = 'Extra Ordinaria' Select idalumno, idmateria, SUM(CalOrdinaria) CalOrdinaria, SUM(CalExtraOrdinaria) CalExtraOrdinaria from #calificacion Group by idalumno, idmateria drop Table #calificacion |
Gracias por sus respuestas y si tengo mas de una tabla uniendo, la solucion que encontre fue hacer un left join uniendo 2 veces la tabla calificaciones y con la condicion en el 1er caso que el tipo de evaluacion fuera Ordinario y el 2do extraordinario.
Saludos y de nuevo muxas gracias |
La franja horaria es GMT +2. Ahora son las 23:41:47. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi