none
Seleccionar ultimo registro de un grupo RRS feed

  • Pregunta

  • Tengo la siguiente consulta que muestra todos los registros de las dos tablas Table1 y Table2 cada vez que se realiza una partida se registran los puntajes en Table1 y en Table2 esta la lista de los jugadores, pero quisiera solo mostrar el registro de la ultima partida de cada jugador ¿Como puedo hacer una consulta para lograr este cometido?

    select
    Table1.id, Table1.idjugador, Table1.fecha, Table1.puntaje,
    Table2.jugador
    from Table1 Table1
    join Table2 Table2
    on Table1.idjugador = Table2.idjugador 
    1 23 243 PotterXZ 
    2 21    600 Carlos
    3 35 250 Emily17
    4 23 555 PotterXZ
    5 27 369 Brayan01
    6 27 230 Brayan01
    7 35 100 Emily17
    8 21 418 Carlos

    lunes, 25 de mayo de 2020 23:33

Respuestas

  • Hola AlexP5:

    Puedes utilizar el operador apply

    select
    	  Table1.id
    	, Table1.idjugador
    	, Table1.fecha
    	, Table1.puntaje
    	, Table2.jugador
    	, T.*
    from Table1 Table1 join Table2 Table2
    			on Table1.idjugador = Table2.idjugador 
    	Cross apply(
    	SELECT TOP(1) T.*
    		FROM TABLE1 T
    		WHERE T.ID = TABLE1.ID
    	ORDER BY T.FECHA DESC
    	) T
    Dentro del conjunto T obtienen el primer elemento ordenado por fecha más reciente de Table1 y en el where, igualas el id de t.Table1, con el id de Table1 (el conjunto exterior).

    • Marcado como respuesta AlexP5 miércoles, 27 de mayo de 2020 21:59
    martes, 26 de mayo de 2020 4:33