只加入t-sql的“最新”记录

前端之家收集整理的这篇文章主要介绍了只加入t-sql的“最新”记录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两张桌子表“B”与表“A”具有一对多的关系,这意味着表“A”中的一个记录将在表“B”中存在许多记录.

表“B”中的记录主要由日期区别,我需要生成一个结果集,其中包含表“A”中的记录,仅与表“B”中的最新记录相结合.为了说明的目的,这里是一个示例模式:

Table A
-------
ID

Table B
-------
ID
TableAID
RowDate

我无法制定查询,给我结果集,我正在寻找任何帮助将不胜感激.

解决方法

select a.*,bm.MaxRowDate
from (
    select TableAID,max(RowDate) as MaxRowDate
    from TableB
    group by TableAID
) bm
inner join TableA a on bm.TableAID = a.ID

如果您需要TableB的更多列,请执行以下操作:

select a.*,b.* --use explicit columns rather than * here
from (
    select TableAID,max(RowDate) as MaxRowDate
    from TableB
    group by TableAID
) bm
inner join TableB b on bm.TableA = b.TableA
    and bm.MaxRowDate = b.MaxRowDate
inner join TableA a on bm.TableAID = a.ID

猜你在找的MsSQL相关文章