Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/01/2014, 10:58
Avatar de FaNaTyCk
FaNaTyCk
 
Fecha de Ingreso: enero-2008
Mensajes: 54
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Calcular rank del usuario (sumar y comparar campos en mysql)

Modifique un par de palabras y quite el limit, el resto esta todo igual.

Código MySQL:
Ver original
  1. SELECT t2.rank, t2.user_id, t2.server_id, t2.shooting, t2.deaths, t2.total FROM `cs16_stats` INNER JOIN (SELECT
  2.     (@REG := @REG + 1) `rank`,
  3.     t1.user_id,
  4.     t1.server_id,
  5.     t1.shooting,
  6.     t1.deaths,
  7.     t1.total
  8. @REG :=0,
  9.   `user_id`,
  10.   `server_id`,
  11.   SUM(`Total_Shooting`) `shooting`,
  12.   SUM(`Total_Deaths`) `deaths`,
  13.   (SUM(`Total_Shooting`) - SUM(`Total_Deaths`)) `total`
  14.  FROM `cs16_stats`
  15. WHERE `server_id` = '6'
  16. GROUP BY `user_id` ORDER BY `total` DESC)t1)t2 ON cs16_stats.user_id = t2.user_id WHERE cs16_stats.user_id = '22999544'
  17. LIMIT 0,1;

Los resultados son los siguientes:

Con el user 3:


Con el user 22999544:


Le agregué otro LIMIT al final para limitar la consulta:


Si no me equivoco, ahora tan solo debería desde el programa leer la respuesta con SQL_ReadResult( Query, 0 ) que vendría a ser el campo rank en la imagen. Nunca había usado INNER JOIN, solo LEFT pero no tan complejo como esto. Probaré y luego te cuento como me fue.

Muchísimas gracias!