Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/10/2008, 02:10
DarkJ
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Saber en que posicion del sql esta tal persona ..

¿POr que la persona h esta en la posicion 10? Porque hay 9 que tienen una puntuacion mayor que la suya.

SELECT count(*) FROM players WHERE puntos>puntos_persona

A esta consulta le pasas en puntos_persona los puntos de la persona de la que quieres saber la posicion. A lo que devuelve la consulta le sumas 1.

En caso de empate a puntos aparecen con la misma posicion, y la siguiente persona con menos puntos con la posicion que ocuparia si los empatados no estarian empatados. Por ejemplo, la persona h y la i tienen 10 puntos y estan situados en la posicion 11, la persona j tiene 9 puntos y esta en la posicion 13.

Si quieres que cada empatado tenga una posicion unica, debes usar un criterio de desempate (orden alfabetico, mejor resultado en casa, mayor diferencia de goles) y crear una consulta que cuente las personas con la misma puntuacion pero mejores en el criterio de desempate, para luego añadirla a la consulta anterior.