none
Rango entre 2 campos. RRS feed

  • Pregunta

  • Hola amigos del foro.

    Quiero pedirles ayuda con una duda que tengo.

    Resulta que tengo 2 entidades.

    Jugador:

    Id,

    Usuario,

    Puntajefinal

    Id_nivel (foránea de la entidad nivel) 

    Nivel:

    Id, 

    Descripción,

    Rangomin,

    Rabgomax

     Lo que necesito es un método que dependiendo del puntaje del jugador se asigne el nivel dependiendo del rango a evaluar en la entidad nivel.. por ejemplo:

    Jugador 1 tiene 15 ptos.

    Y tengo 2 niveles:

    Novato rangomin 0 y rangomax 25

    Intermedio rangomin 26 y rangomax 50

     

    Se supone que que el nivel de jugador sería novato dado que el puntaje se encuentra entre los rangos de la tupla novato.

    Hasta ahora e probado con where between campo 1 >= puntajejugador y pmrangomax <= puntajejugador. Pero la consulta no me devuelve registros. 

    Quisiera sugerencias, pues me imagino que alguno de ustedes propondría otro modelo entre las tablas para lograr el resultado que necesito.

    Desde ya agradecido.


    Saludos desde Chile.


    lunes, 15 de mayo de 2017 3:18

Respuestas

  • Saludos,

    Aver algo como esto;

    update TablaJugador set Nivel = select Nivel from TablaNivel where Puntuacion between desde and hasta

    Prueba y dejanos saber.

    No olvides marcar como respuesta si te a ayudado para ayuda de otros usuarios en situación iguales.

    • Marcado como respuesta Aprendiz_Chile lunes, 15 de mayo de 2017 23:39
    lunes, 15 de mayo de 2017 12:39
  • Hola Aprendiz_Chile

    Te recomiendo que lo actualices usando los operadores >= y <= de la siguiente forma:

    update Jugador 
    set Id_nivel = (select Id from Nivel where Puntajefinal >= Rangomin and PuntajeFinal <= Rangomax)

    Esto actualizará tu tabla jugador a partir del rango que encuentre en el campo puntajefinal

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    lunes, 15 de mayo de 2017 14:33

Todas las respuestas

  • Hola.

    El UPDATE debes hacerlo indicando que ID_NIVEL de JUGADOR sea igual a ID_NIVEL de NIVEL, WHERE PUNTAJEFINAL >= RANGOMIN AND PUNTAJEFINAL <= RANGOMAX.

    Para usar BETWEEN, sería WHERE PUNTAJEFINAL BETWEEN RANGOMIN AND RANGOMAX.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    lunes, 15 de mayo de 2017 11:37
  • Saludos,

    Aver algo como esto;

    update TablaJugador set Nivel = select Nivel from TablaNivel where Puntuacion between desde and hasta

    Prueba y dejanos saber.

    No olvides marcar como respuesta si te a ayudado para ayuda de otros usuarios en situación iguales.

    • Marcado como respuesta Aprendiz_Chile lunes, 15 de mayo de 2017 23:39
    lunes, 15 de mayo de 2017 12:39
  • Hola Aprendiz_Chile

    Te recomiendo que lo actualices usando los operadores >= y <= de la siguiente forma:

    update Jugador 
    set Id_nivel = (select Id from Nivel where Puntajefinal >= Rangomin and PuntajeFinal <= Rangomax)

    Esto actualizará tu tabla jugador a partir del rango que encuentre en el campo puntajefinal

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    lunes, 15 de mayo de 2017 14:33