如何在SQL Server上选择上个月对应的值(我想这是一个简单的查询)

如何在SQL Server上选择上个月对应的值(我想这是一个简单的查询),sql,sql-server,Sql,Sql Server,我有下表: 我需要进行查询,返回上个月每个代码的对应值,如下所示: 正如我所说,我认为这是一个简单的查询,但我做不到。只需使用滞后: 在较旧版本的SQL Server中,可以使用“应用”: 我不能使用LAG函数,SQL Server的版本太旧了。 select t.*, lag(value) over (partition by code order by date) as value_last_month from t; select t.*, t2.value as value_last_

我有下表:

我需要进行查询,返回上个月每个代码的对应值,如下所示:

正如我所说,我认为这是一个简单的查询,但我做不到。

只需使用滞后:

在较旧版本的SQL Server中,可以使用“应用”:


我不能使用LAG函数,SQL Server的版本太旧了。
select t.*, lag(value) over (partition by code order by date) as value_last_month
from t;
select t.*, t2.value as value_last_month
from t outer apply
     (select top (1) t2.*
      from t t2
      where t2.code = t.code and t2.date < t.date
      order by date desc
     ) t2;