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

Cita:
Iniciado por leonardo_josue Ver Mensaje
Y probaste lo que te puse de código??? no es lo que necesitas???

De la manera en que estás obteniendo el promedio (utilizando AVG) no te va a servir, pues va a obtener el promedio DE TODOS LOS REGISTROS, es por eso que en la consulta te te propongo se obtiene por un lado la suma para cada ciclo y a la vez cuantos ciclos se están contabilizando... para obtener el promedio dividimos estos dos resultados...

Entonces cuál es el problema con la consulta???

Saludos
Leo.
Leo en primera instancia pense que no me habias entendido pero ahora probe el codigo que me dejaste y funciono perfecto exacto como lo necesitaba enserio demasiadas gracias, estaba hace una semana trabajando ese codigo, muchas gracias. igual dejo el codigo final como lo deje por si a otro usuario le sive.



Código MySQL:
Ver original
  1. * *  supervisor,
  2. * *  SUM(IF(t2.nro_ciclo = 1, t2.promedio, 0)) total1,
  3. * *  SUM(IF(t2.nro_ciclo = 1, 1, 0)) *nota1,
  4. * *  SUM(IF(t2.nro_ciclo = 2, t2.promedio, 0)) total2,
  5. * *  SUM(IF(t2.nro_ciclo = 2, 1, 0)) *nota2,
  6. * *  SUM(IF(t2.nro_ciclo = 3, t2.promedio, 0)) total3,
  7. * *  SUM(IF(t2.nro_ciclo = 3, 1, 0)) *nota3,
  8.      SUM(IF(t2.nro_ciclo = 4, t2.promedio, 0)) total4,
  9. * *  SUM(IF(t2.nro_ciclo = 4, 1, 0)) *nota4
  10. * *  FROM
  11.     (
  12.     select t1.supervisor,ROUND(avg(t1.nota_final),1) as promedio, t1.nro_ciclo
  13.     from (select nombre, nota_final, nro_Ciclo, supervisor
  14.     from dotacion
  15.     inner join evaluacion
  16.     on dotacion_asignada_iddotacion_asignada =iddotacion
  17.     inner join calendario_evaluacion on idcalendario_evaluacion = Calendario_Evaluacion_idCalendario_Evaluacion
  18.     where
  19.     activo = 1
  20.     and year_carga = (select year(now()))
  21.     and mes_carga= (select max(mes_carga) from dotacion where year_carga=(select year(now())))
  22.     group by sesion_id, nro_ciclo) t1
  23.     group by t1.nro_ciclo, t1.supervisor) t2
  24. * *  GROUP BY supervisor;