我有一个带有生效日期字段的表A,需要确定另一个表B中的字段何时落在一个生效日期和下一个生成日期的范围之间(为了在表B中指定不同字段的值) 。例如。
A
[Effective Date] [Cost]
---------------- ----------------
1/1/2016 10.25
5/20/2016 11.75
B
[Service Date] [Cost]
---------------- ----------------
3/1/2016 *should be 10.25*
问题是,可能没有“结束”生效日期。所以我也需要考虑这种可能性。任何想法都非常感激。
答案 0 :(得分:0)
select
b.[Service Date]
, Cost = (select top 1 a.Cost
from a
where a.[Effective Date] <= b.[Service Date]
/* assuming there are other important correlating identifiers,
you would add something like: */
-- and a.[ServiceId] = b.[ServiceId]
order by a.[Effective Date] desc
)
from b;