Получение максимального значения из строк и соединение с другой таблицей
Извините, если это глупо, я действительно новичок, пытающийся прибить это.
Table A:
ID Rank Name
1 100 Name1
1 45 Name2
2 60 Name3
2 42 Name4
2 88 Name5
Table B:
ID FileName
1 fn1
2 fn2
Что я хочу это
1 fn1 name1
2 fn2 name5
Вот как выглядит мой запрос, но он дает мне несколько строк результатов (а не максимум), когда я выполняю объединение
select B.Id B.FileName,A.Name
FRom B
JOIN (
select A.Id, MAX(A.Rank)as ExpertRank
from A
group by A.Id
) as NewA on A.Id = B.ID
join B on A.Rank = NewA.Rank
Подзапрос работает нормально, у меня возникла проблема с выполнением этого соединения.
Как я могу это исправить?
Благодарю.
У меня есть SQL Server 2008 R2
Последнее, что я пропустил.
select B.Id B.FileName,A.Name
FRom B
JOIN (
select A.Id, MAX(A.Rank)as ExpertRank
from A
group by A.Id
) as NewA on A.Id = B.ID
join B on A.Rank = NewA.Rank
and A.Id = newA.Id