SQL查询,从不同日期的值中提取大约90天的值

SQL查询,从不同日期的值中提取大约90天的值,sql,sql-server,Sql,Sql Server,我的问题是表中有一行的值、日期和标记为Y或N Unique ID Value Date Tag 1 10 1/1/2018 Y 1 5 4/17/2018 N 我需要确保带有N标记的距离90天的值为原始值的一半或更少您可以获得距离90天最近的日期,如下所示: select t.*, t2.value as about90dayvalue from t outer appl

我的问题是表中有一行的值、日期和标记为Y或N

Unique ID Value             Date          Tag   
1          10         1/1/2018   Y
1           5         4/17/2018  N

我需要确保带有N标记的距离90天的值为原始值的一半或更少您可以获得距离90天最近的日期,如下所示:

select t.*, t2.value as about90dayvalue
from t outer apply
     (select top (1) t2.*
      from t t2
      where t2.uniqueid = t.uniqueid and
            t2.tag = 'N' and t2.date < t.date
      order by (datediff(day, t2.date, t.date) - 90) ;

我不知道“确保”是什么意思。但这会将两个值放在同一行。

相隔90天意味着什么?大约90天。此场景中的值是收到的文件上的记录计数-需要检查大约90天后收到的文件是否具有原始记录的50%,因为在这90天内行应该减少。我说大约90天,因为文件不一定以一致的增量接收。