elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Calcular la Posicion de un usuario?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Calcular la Posicion de un usuario?  (Leído 2,485 veces)
DarkMatrix

Desconectado Desconectado

Mensajes: 150


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Calcular la Posicion de un usuario?
« en: 12 Enero 2010, 18:23 pm »

Bueno mi inquietud es la de como obtener el rank (Posicion) de un usuario dentro de una determianada jerarquia, sabiendo que los datos estan en una base de datos access. Ejemplo: En la base de datos hay 10.000 usuarios cada uno con una determinada experiencia, quiero obtener la posicion del Usuario 3 ordenando de mayor a menor sin tener que hacer un "SELECT * FROM Users ORDER BY Experiencia" y tener que recorrer cada registro para obtener el indece del registro -.-

Usuario:              Experiencia:
Usuario 1            500
Usuario 2            358
Usuario 3            589
Usuario 4            955
Usuario 5            1254
Usuario 6            2121
Usuario 7            85
Usuario 8            159

"SELECT * FROM Users ORDER BY Experiencia DESC":

Usuario:              Experiencia:
Usuario 6            2121
Usuario 5            1254
Usuario 4            955
Usuario 3            589
Usuario 1            500
Usuario 2            358
Usuario 8            159
Usuario 7            85

Usuario 3 Posicion: 4

Actualmente lo hago de esta manera, pero hay que pedir todos los registros a la base de datos y quiera saber si hay otra forma:

Código
  1. Private Function Obtener_Posicion()
  2.  
  3.    MiRecordset.Open "SELECT * FROM Users ORDER BY Experience DESC", MiConexion, adOpenDynamic, adLockOptimistic
  4.  
  5.    MiRecordset.MoveFirst
  6.    MiRecordset.Find "Username = 'Usuario 7266'"
  7.  
  8.    If (MiRecordset.BOF = True) Or (MiRecordset.EOF = True) Then
  9.        MsgBox "Usuario no encontrado"
  10.        MiRecordset.Close
  11.        Exit Function
  12.    End If
  13.  
  14.    MsgBox MiRecordset.AbsolutePosition
  15.    MsgBox MiRecordset.Fields("Experience")
  16.  
  17.    MiRecordset.Close
  18.  
  19. End Function


« Última modificación: 12 Enero 2010, 21:51 pm por DarkMatrix » En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Calcular la Posicion de un usuario?
« Respuesta #1 en: 12 Enero 2010, 18:28 pm »

Seleccionar el Usuario con Mayor Experiencia?
En SQL existe la funcion MAX(). vease (http://msdn.microsoft.com/es-es/library/ms187751.aspx)


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
DarkMatrix

Desconectado Desconectado

Mensajes: 150


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Re: Calcular la Posicion de un usuario?
« Respuesta #2 en: 12 Enero 2010, 18:32 pm »

No, no quiero el que tenga mas experiencia, quiero obtener la posicion del usuario segun su experiencia, asi como en el ejemplo que hize.
En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
Sk9ITk5Z


Desconectado Desconectado

Mensajes: 2.306



Ver Perfil WWW
Re: Calcular la Posicion de un usuario?
« Respuesta #3 en: 13 Enero 2010, 00:08 am »

Citar
quiero obtener la posicion del usuario segun su experiencia

osea algo como un select posicion where experiencia = algo????
En línea

Este es un pueblo de corazón extraviado, no quiere conocer mis caminos por eso no entraran en mi descanso.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Calcular la Posicion de un usuario?
« Respuesta #4 en: 13 Enero 2010, 00:48 am »

no, el lo que quiere es que le devuelvan el numero de la fila en la que se encuentra tal usuario, lo que recomendaria es hacer un Count de los usuarios que estan antes de el, no te armo la consulta porque seguro ni funcionaria (hace mucho que no toco SQL :xD)

Código
  1. SELECT COUNT(*) FROM Users WHERE Experiencia < (ExperienciaUsuario) ORDER BY Experiencia
  2.  

En experienciaUsuario podes hacer otro select
Código
  1. SELECT COUNT(*) FROM Users WHERE Experiencia < (SELECT Experiencia FROM Users WHERE Id = 2) ORDER BY Experiencia
  2.  

Espero que te sirva!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Cómo debería calcular la posicion de un objeto con zoom?
Programación General
WHK 3 2,789 Último mensaje 1 Agosto 2016, 01:04 am
por WHK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines