Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-02-2011
elea elea is offline
Miembro
NULL
 
Registrado: ene 2011
Ubicación: México
Posts: 16
Poder: 0
elea Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 25-02-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 25-02-2011
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 20
abelg Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 25-02-2011
elea elea is offline
Miembro
NULL
 
Registrado: ene 2011
Ubicación: México
Posts: 16
Poder: 0
elea Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Aplicación para Administrar Alumnos y Calificaciones posarma OOP 1 27-07-2010 10:38:01
consulta sobre una consulta :D PablorD MySQL 4 02-06-2010 21:59:51
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


La franja horaria es GMT +2. Ahora son las 16:07:26.


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
Copyright 1996-2007 Club Delphi