我有2个表,我需要从中获取唯一的记录。当条件不匹配时,我需要获取下一个有效值。
表A -
RefNo | 结束日期 | 开始日期 | 1234 | 20071010 | 20070618 |
---|---|---|
1234 | 20051021 | 20050627 |
1234 | 20060608 | 20060220 |
我们可以得到"最接近";行到引用结束日期与apply
。由于我们忽略了开始日期,因此很高兴返回"先前"。比赛。
select row_number() over(partition by a.refNo order by a.startDate) rn,
a.*,
b.firstName, b.lastName
from tablea a
outer apply (
select top (1) b.*
from tableb b
where b.refNo = a.refNo and b.dateCompare <= a.dateEnd
order by b.dateCompare desc
) b
order by rn