SQL查询从另一个日期的值中拉出约90天的值

时间:2018-06-22 00:27:30

标签: sql sql-server

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

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

我需要确保大约90天后的值(带有N标签)的值是原始值的一半或更少(在这种情况下,<= 5)。在之前,之后和之后之间可以有任意数量的行,而我需要距离最接近90天的行,并确保它是带有Y标签的值的一半。如果距离最近90天的文件少于一半,则用Y标记,否则用N标记。

这是我以前从未做过的事情,所以我希望这里的人能为您提供帮助!

P.S。抱歉,格式糟糕!

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式获得最接近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) ;

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