• ranitb - Wednesday, June 20, 2018 5:21 AM

    Does this help ?

    select top 2 *
    from (
        select max(u.iduser) iduser, max(u.score) score, s.rangename name
        from    #Users u
                left join #scorerange s on (u.score between s.scorelow and s.scorehigh)
        group by s.rangename
    ) x
    order by 2 desc

    O/p -
    iduser    score    name
    340    3600    Good
    340    2375    Moderate

    Be careful with that approach: the MAX(user) may not be from the same row as the MAX(score).

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.