Ver Mensaje Individual
  #2  
Antiguo 19-01-2018
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Reputación: 21
mRoman Va por buen camino
Cita:
Empezado por Manuel Ver Mensaje
Hola amigos del foro, tengo la siguiente situación que ha sido planteada por un cliente, les explico:

Tengo valores en tabla de memoria (rxmemoryData) la cual está compuesta como sigue:
Código SQL [-]
id integer (1,2,3, etc)
calificacion1 float (3,5, 7,0, 4,5)
calificacion2 float (3,5, 7,0, 4,5)
calificacion3 float (3,5, 7,0, 4,5)
calificacion4 float (3,5, 7,0, 4,5)
calificacion5 float (3,5, 7,0, 4,5)
Es una tabla de calificaciones de los estudiantes, el cliente me pide si el estudiante tiene su calificación pendiente no aparezca 0 (cero), si no que la letra "P", si la calificación no será aplicada "/", si es eximido una "E", todo esto en la dbgrid, donde yo ingreso las calificaciones, ahora por el tipo de datos de las calificaciones no podría usar esos indicadores, la solución propuesta fue:

calificación pendiente = -1
Si la calificación no será aplicada = -2
eximido = -3

Nota: las calificaciones se validan de 0 a 7.

Ahora el cliente insiste en los símbolos descritos anteriormente (P, /, E), como se podría hacer, ingresando el -1, pero en la dbgrid visualice "P"?

Agradezco su ayuda, muchas gracias.
Hola MANUEL, buenos dias.

Yo lo haria usando CASE en el SELECT de la consulta, algo asi:

Código SQL [-]
select p.pmt_nombre,
       case l.tipo_contr
          when 1 then 'Concesionario'
          when 2 then 'Distribuidor'
          when 3 then 'Cuenta propia'
       end as contrato,
       count(*) as total_puntos
from tienda l,
     promotor p
where l.promotor=p.pmt_numero
  and l.tipo_contr in (1,2,3)
  and l.en_operacion=0
group by p.pmt_nombre,
         l.tipo_contr
order by p.pmt_nombre

En tu caso podría ser asi:
Código SQL [-]
select nombre_materia,
         CASE calificacion_materia
              when -1 then 'P'
              when -2 then '/'
              when -3 then 'E'
         END as estatus_calificacion
from TABLA_CALIFICACIONES
where condicion_1 = condicion_2   //Dentro del where agregas las condicionantes de tu caso

Algo como lo anterior, lo puedes enlazar a tu DataSet asociado a al DbGrid y se visualizara como lo requieres.

Por cierto que componentes usas y que base de datos !!!....lo anterior es usando componentes SQL Firebird.

Saludos y espero esto te ayude.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita