Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/03/2012, 11:30
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Duda sobre if en mysql

Hola massu_vago:

No sé si entendí bien la idea, pero creo que la consulta sería más o menos así.

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+-----------+--------------+----------+
  3. | id   | nro_ciclo | supervisor   | cantidad |
  4. +------+-----------+--------------+----------+
  5. |    1 |         1 | E. Cancino   |       10 |
  6. |    2 |         2 | E. Cancino   |        9 |
  7. |    3 |         3 | E. Cancino   |       11 |
  8. |    4 |         1 | E. Cancino   |        6 |
  9. |    5 |         2 | E. Cancino   |       10 |
  10. |    6 |         3 | E. Cancino   |       13 |
  11. |    7 |         1 | J. Santander |       10 |
  12. |    8 |         2 | J. Santander |        5 |
  13. |    9 |         3 | J. Santander |        9 |
  14. +------+-----------+--------------+----------+
  15. 9 rows in set (0.00 sec)
  16.  
  17. mysql> SELECT
  18.     -> supervisor,
  19.     -> SUM(IF(nro_ciclo = 1, cantidad, 0)) total1,
  20.     -> SUM(IF(nro_ciclo = 1, 1, 0))  nota1,
  21.     -> SUM(IF(nro_ciclo = 1, cantidad, 0)) / SUM(IF(nro_ciclo = 1, 1, 0))  
  22.     -> promedioNota1,
  23.     -> SUM(IF(nro_ciclo = 2, cantidad, 0)) total2,
  24.     -> SUM(IF(nro_ciclo = 2, 1, 0))  nota2,
  25.     -> SUM(IF(nro_ciclo = 3, cantidad, 0)) total3,
  26.     -> SUM(IF(nro_ciclo = 3, 1, 0))  nota3
  27.     -> FROM tabla
  28.     -> GROUP BY supervisor;
  29. +--------------+--------+-------+---------------+--------+-------+--------+-------+
  30. | supervisor   | total1 | nota1 | promedioNota1 | total2 | nota2 | total3 | nota3 |
  31. +--------------+--------+-------+---------------+--------+-------+--------+-------+
  32. | E. Cancino   |     16 |     2 |        8.0000 |     19 |     2 |     24 |2      |
  33. | J. Santander |     10 |     1 |       10.0000 |      5 |     1 |      9 |1      |
  34. +--------------+--------+-------+---------------+--------+-------+--------+-------+
  35. 2 rows in set (0.00 sec)

En tu consulta veo que involucras más de una tabla, pero no nos das información al respecto, si continuas con problemas es preferible comenzar desde lo básico: dinos cómo es la estructura de tus tablas, pon algunos datos de ejemplo de cada una de ellas y dinos qué es lo que esperas de salida. Es posible que a partir de esta información podamos proponerte alguna otra forma de obtener el mismo resultado.

Saludos
Leo.