T-SQL中有两种可能的方法来获取下一个生效日期。一是使用
LEAD()
另一种是使用
APPLY
接线员。因为这里没有什么事实可以证明
样品
:
select *
from (
select *
, lead(EffectiveDate) over(partition by CompanyGUID order by quoteid desc) as NextEffectiveDate
from Table1
join Table2 on ...
) d
或
select table1.*, oa.NextEffectiveDate
from Table1
outer apply (
select top(1) q2.ExpirationDate AS NextEffectiveDate
from Table2 Q2
where q2.ControlNo = Table1.controlno
order by quoteid desc
) oa
注意。一
outer apply
left join
在这种情况下,它将允许查询返回带有NULL的行(如果不需要的话)
cross apply
在这两种方法中,您可以参考
NextEffectiveDate
在最后一个where子句中,但是如果可行的话,我宁愿避免使用convert函数(这取决于数据)。