Ver Mensaje Individual
  #18 (permalink)  
Antiguo 27/07/2012, 13:08
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: Cómo hago para almacenar diferentes variables y ordenarlas?

sToRaGe:

Ya te habrás dado cuenta de que con copiar y pegar dificilmente vas a llegar a una solución a tus problemas... Antes de continuar te sugiero encarecidamente LEE CUIDADOSAMENTE LO QUE TE ESTAMOS PONIENDO EN EL POST Y ANALIZA UN POCO EL CÓDIGO. Si no haces esto podremos llevarnos todo el día sin que encuentres finalmente algo que se adecue a lo que necesites.

El ejemplo que te puse ESTÁ BASADO EN LOS PRIMEROS DATOS QUE PUSISTE DE EJEMPLO y si observas detenidamente te darás cuenta de que funciona perfectamente... esto es para que te sirviera de GUÍA, pero era obvio que necesitaba hacer ajustes.

En primer lugar, Si el TIPO lo vas a considerar como columna entonces DEBES QUITARLO DEL SELECT, sino se repetirá también como renglón.

Segundo, si la idea es extraer la información sólo de la última temporada, entonces DEBES FILTRAR LOS DATOS para solo tomar justamente los de la última temporada...

Código MySQL:
Ver original
  1. mysql> SELECT * FROM campeonato;
  2. +-----------+----------+--------+-------+
  3. | TEMPORADA | TIPO     | DORSAL | GOLES |
  4. +-----------+----------+--------+-------+
  5. |      2012 | Liga     |      9 |    10 |
  6. |      2012 | Amistoso |      9 |     6 |
  7. |      2012 | Copa     |      9 |     2 |
  8. |      2012 | Liga     |     10 |    11 |
  9. |      2012 | Amistoso |     10 |     4 |
  10. |      2012 | Copa     |     10 |     1 |
  11. |      2011 | Liga     |      9 |     7 |
  12. |      2011 | Amistoso |      9 |     6 |
  13. |      2011 | Copa     |      9 |     2 |
  14. |      2011 | Liga     |     10 |     8 |
  15. |      2011 | Amistoso |     10 |     3 |
  16. |      2011 | Copa     |     10 |     5 |
  17. +-----------+----------+--------+-------+
  18. 12 rows in set (0.00 sec)
  19.  
  20. mysql> SELECT
  21.     ->   temporada,
  22.     ->   dorsal,
  23.     ->   SUM(IF(tipo='Liga', goles,0)) Liga,
  24.     ->   SUM(IF(tipo='Amistoso',goles,0)) Amistoso,
  25.     ->   SUM(IF(tipo='Copa',goles,0)) Copa,
  26.     ->   SUM(goles) Total
  27.     -> FROM campeonato
  28.     -> GROUP BY dorsal, temporada
  29.     -> ORDER BY temporada, total DESC;
  30. +-----------+--------+------+----------+------+-------+
  31. | temporada | dorsal | Liga | Amistoso | Copa | Total |
  32. +-----------+--------+------+----------+------+-------+
  33. |      2011 |     10 |    8 |        3 |    5 |    16 |
  34. |      2011 |      9 |    7 |        6 |    2 |    15 |
  35. |      2012 |      9 |   10 |        6 |    2 |    18 |
  36. |      2012 |     10 |   11 |        4 |    1 |    16 |
  37. +-----------+--------+------+----------+------+-------+
  38. 4 rows in set (0.00 sec)

Observa en la consulta que en el SELECT NO SE ESTÁ CONSIDERANDO EL CAMPO TIPO, observa también que la temporada SI SE INCLUYE EN EL SELECT, pues es un criterio de agrupación, y por lo tanto TAMBIÉN SE CONSIDERA EN EL GROUP BY...

Tómate un tiempo para analizar la consulta...

Saludos
Leo.