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

mira el modelo de datos que uso es relacional todas las tablas estan relacionadas:

mira la consulta de donde vienen todos los datos es esta

Código MySQL:
Ver original
  1. select nombre, nota_final, nro_Ciclo, supervisor, plataforma
  2.     from dotacion
  3.     inner join evaluacion
  4.     on dotacion_asignada_iddotacion_asignada =iddotacion
  5.     inner join calendario_evaluacion on idcalendario_evaluacion = Calendario_Evaluacion_idCalendario_Evaluacion
  6.     where
  7.     activo = 1
  8.     and year_carga = (select year(now()))
  9.     and mes_carga= (select max(mes_carga) from dotacion where year_carga=(select year(now())))
  10.     group by sesion_id, nro_ciclo

y esto trae lo siguiente
NOMBRE NOTA CICLO SUPERVISOR
DORIS ROSARIO 10 2 J. Santander
CRISTIAN ALBERTO 70 1 E. Cancino
TAMARA ALICIA 44 1 J. Santander
TAMARA ALICIA 59 2 J. Santander
TAMARA ALICIA 40 3 J. Santander
TAMARA ALICIA 70 4 J. Santander
CLAUDIA ANDREA 58 1 J. Santander
CLAUDIA ANDREA 70 2 J. Santander
FABIAN IGNACIO 55 1 E. Cancino

te explico el contexto la consulta debe traer a todos los alumnos con su nota y el ciclo que fueron evaluados(siempre son 4) , a partir de esta consulta saco el promedio de cada supervisor que la hago con la siguiente consulta a partir de la anterior

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

y esto me hace el calculo perfecto y me trae los datos de la siguiente manera


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

he aqui mi ploblema ya que necesito motrar los datos de manera horizontal
asi
NOMBRE Ciclo Nota1 Nota2 Nota3 Nota4
E. Cancino 1 53.6 50.0 0 0
J. Santander 1 49.6 54.3 28.5 55.0

y es aqui donde aplico la primera consulta que deje arriba pero me muestra los datos como aparecen en el post inicial.

nose si me explique bien o deje mas claro el problema?

de antemano gracias