Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2012, 10:01
massu_vago
 
Fecha de Ingreso: diciembre-2008
Mensajes: 88
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Duda sobre if en mysql

Hola amigos de foros del web en esta ocacion les queria hacer una consulta que a lo mejor para ustedes es facil pero yo no puedo dar con la solucion ojala me puedan ayudar ya que en otros foros no han podido.

miren lo que quiero hacer es crear un reporte en una consulta con if para sacar calculos segun una condicion que en este caso seria segun un ciclo calcule el promedio de un profesor. a continuacion dejo el codigo.

Código MySQL:
Ver original
  1. select t2.supervisor, t2.nro_ciclo, if(t2.nro_ciclo=1, t2.promedio, 0),
  2.     if(t2.nro_ciclo=2, t2.promedio, 0),
  3.     if(t2.nro_ciclo=3, t2.promedio, 0),
  4.     if(t2.nro_ciclo=4, t2.promedio, 0) from(
  5.     select t1.supervisor,ROUND(avg(t1.nota_final),1) as promedio, t1.nro_ciclo,t1.plataforma
  6.     from (select nombre, nota_final, nro_Ciclo, supervisor, plataforma
  7.     from dotacion
  8.     inner join evaluacion
  9.     on dotacion_asignada_iddotacion_asignada =iddotacion
  10.     inner join calendario_evaluacion on idcalendario_evaluacion = Calendario_Evaluacion_idCalendario_Evaluacion
  11.     where
  12.     activo = 1
  13.     and year_carga = (select year(now()))
  14.     and mes_carga= (select max(mes_carga) from dotacion where year_carga=(select year(now())))
  15.     group by sesion_id, nro_ciclo) t1
  16.     group by t1.nro_ciclo, t1.supervisor) t2

y esto me me muestra los datos asi

E. Cancino 1 53.6 0 0 0
J. Santander 1 49.6 0 0 0
E. Cancino 2 0 50.0 0 0
J. Santander 2 0 54.3 0 0
J. Santander 3 0 0 28.5 0
J. Santander 4 0 0 0 55.0

pero necesito que los muestre asi

E. Cancino 1 53.6 50.0 0 0
J. Santander 1 49.6 54.3 28.5 55.0

lointente agregando un group by supervisor y me muestra asi

E. Cancino 1 53.6 0.0 0.0 0.0
J. Santander 1 49.6 0.0 0.0 0.0

solo calcula el primer ciclo y no se como hacer que muestre los demas porfavor ayudenme se los agradeceria mucho