如何使用ID
字段创建将TableA与TableB连接的MSSQL查询,但我希望它加入ID
列中具有最高值的Number
记录?
TableA
ID
1
2
3
4
TableB
ID Number
1 1
1 2
1 3
2 1
3 1
3 2
4 1
4 2
4 3
我希望这是我的输出
TableJoined
ID Number
1 3
2 1
3 2
4 3
有没有办法使用LEFT JOIN来实现这个目标或使用max()?
答案 0 :(得分:3)
两者。在左连接上使用聚合。
Select t1.id, max(t2.number)
From table1 t1
Left join table2 t2 on t1.id= t2.id
Group by t1.id;
答案 1 :(得分:1)
您可以查询如下:
Select a.Id, Number from #a a join
(
Select top(1) with ties * from #b
order by row_number() over(partition by id order by number desc)
) b on a.id = b.id
答案 2 :(得分:0)
Select A.Id, Max(Number) MaxNo from A
join B on A.Id=B.Id
Group by A.Id
答案 3 :(得分:-1)
create table #a(
id int
)
go
create table #b(
id int,
number int
)
go
insert into #a values(1),(2),(3),(4)
insert into #b values(1,1),(1,2),(1,3),(2,1),(3,1),(3,2),(4,1),(4,2),(4,3)
select #b.id,MAX(number) as maximum
from #b left outer join #a on #b.id=#a.id
group by #b.id