SQL查询,从不同日期的值中提取大约90天的值
我的问题是表中有一行的值、日期和标记为Y或NSQL查询,从不同日期的值中提取大约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
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天,因为文件不一定以一致的增量接收。