Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Se me rompio el balero: Como Armar un Ranking con ASP y MySQL?

Estas en el tema de Se me rompio el balero: Como Armar un Ranking con ASP y MySQL? en el foro de Mysql en Foros del Web. Hola: Estoy intentando resolver un ranking que muestre una lista de jugadores que intervienen en un torneo de varias etapas, en las cuales obtienen puntos ...
  #1 (permalink)  
Antiguo 13/03/2008, 16:24
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 4 meses
Puntos: 0
Se me rompio el balero: Como Armar un Ranking con ASP y MySQL?

Hola:

Estoy intentando resolver un ranking que muestre una lista de jugadores que intervienen en un torneo de varias etapas, en las cuales obtienen puntos y éstos a su vez sumados conforman un total general que es que define el orden en el ranking. La base de datos de la cual parto es la siguiente (la cantidad de jugadores y etapas varian en forma dinámica):

+-----------+------------+----------+---------+
| idranking | idjugador | idetapa | puntos |
+-----------+------------+----------+---------+
| 1 | A | 1 | 6 |
+-----------+------------+----------+---------+
| 2 | B | 1 | 8 |
+-----------+------------+----------+---------+
| 3 | C | 1 | 10 |
+-----------+------------+----------+---------+
| 4 | A | 2 | 10 |
+-----------+------------+----------+---------+
| 5 | B | 2 | 6 |
+-----------+------------+----------+---------+
| 6 | C | 2 | 8 |
+-----------+------------+----------+---------+
| 7 | A | 3 | 8 |
+-----------+------------+----------+---------+
| 8 | B | 3 | 6 |
+-----------+------------+----------+---------+
| 9 | C | 3 | 10 |
+-----------+------------+----------+---------+

La tabla que pretendo mostrar en la página con esta info es la siguiente:

+----------+----------+----------+---------+--------+
| Jugador | Etapa 1 | Etapa 2 | Etapa 3 | Total |
+----------+----------+----------+---------+--------+
| C | 10 | 8 | 10 | 28 |
+----------+----------+----------+---------+--------+
| A | 6 | 10 | 8 | 24 |
+----------+----------+----------+---------+--------+
| B | 8 | 6 | 6 | 20 |
+----------+----------+----------+---------+--------+

En base a la estructura de la base de datos, pensaba en una instrucción SELECT de estas características:

"SELECT idjugador, idetapa, SUM(puntos) AS subtotal FROM ranking GROUP BY idjugador WITH ROLLUP"

Pero esta instrucción me devuelve una tabla de este tipo:

+------------+---------+---------+
| idjugador | idetapa | puntos |
+------------+---------+---------+
| A | 1 | 10 |
+------------+---------+---------+
| A | 2 | 10 |
+------------+---------+---------+
| A | 3 | 8 |
+------------+---------+---------+
| Null | Null | 28 |
+------------+---------+---------+
| B | 1 | 8 |
+------------+---------+---------+
| B | 2 | 6 |
+------------+---------+---------+
| B | 3 | 6 |
+------------+---------+---------+
| Null | Null | 20 |
+------------+---------+---------+
| C | 1 | 6 |
+------------+---------+---------+
| C | 2 | 8 |
+------------+---------+---------+
| C | 3 | 10 |
+------------+---------+---------+
| Null | Null | 24 |
+------------+---------+---------+

El tema es que no puedo ordenar esta info de modo de ir dibujándola en la página. Como estos resultados dejarían al jugdor C en primer lugar, luego al A y por último al B, hasta donde yo lo entiendo, lo que necesito es que la tabla me quede ordenada de la siguiente forma:

+------------+---------+---------+
| idjugador | idetapa | puntos |
+------------+---------+---------+
| C | 1 | 10 |
+------------+---------+---------+
| C | 2 | 8 |
+------------+---------+---------+
| C | 3 | 10 |
+------------+---------+---------+
| Null | Null | 28 |
+------------+---------+---------+
| A | 1 | 6 |
+------------+---------+---------+
| A | 2 | 10 |
+------------+---------+---------+
| A | 3 | 8 |
+------------+---------+---------+
| Null | Null | 24 |
+------------+---------+---------+
| B | 1 | 8 |
+------------+---------+---------+
| B | 2 | 6 |
+------------+---------+---------+
| B | 3 | 6 |
+------------+---------+---------+
| Null | Null | 20 |
+------------+---------+---------+

Estuve buscando en la web algún ejemplo que resuelva algo por el estilo pero no encontré nada.

Podría alguien darme una mano con este tema. La verdad no se como resolverlo.

Muchas Gracias,
RataASP
  #2 (permalink)  
Antiguo 14/03/2008, 18:16
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Se me rompio el balero: Como Armar un Ranking con ASP y MySQL?

Hola RataASP,

La verdad es que ese no es un problema de BD sino de programación. Podrías resolverlo con el uso de IFs, pero es muy poco eficiente. Te recomiendo que simplemente cargues los datos y lo ordenes en código.
__________________
pragone
Blog: Desarrollo, comunidad y monetización
Últimos artículos: Tips de Smarty
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:01.