SQL Server 2008 - 获取先前和未来日期的代码

时间:2016-07-03 03:27:18

标签: sql-server-2008

需要获得一个之前和之后的付款更改日期,如何在SQL中对其进行编码以提取这些日期?有许多先前和未来的更改日期,但我只想要一个先前和一个未来。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您的问题听起来需要lag()lead(),但这些问题无法解决。

您可以使用outer apply执行类似操作:

select t.*, tprev.changedate, tnext.changedate
from t outer apply
     (select top 1 tprev.*
      from t tprev
      where tprev.changedate < t.changedate
      order by tprev.changedate desc
     ) tprev outer apply
     (select top 1 tnext.*
      from t tprev
      where tnext.changedate < t.changedate
      order by tnext.changedate desc
     ) tnext;