最近10天根据最近可用数据取值



我必须以这样一种方式从表中获取数据,即我的开始日期来获取数据是基于最后一个数据插入的日期。

例如,我有从24/01/2011到现在的数据。但是对于某些特定的id,我们已经插入了24/01/2012上的最后一个数据。在这种情况下,我必须获取从14/01/201224/01/2012的数据。

因为我不知道数据插入的最后日期,所以首先我必须获取max of date,并基于此找到开始日期。有什么快速的方法吗?所以一切都是在一个单一的和快速的查询处理。

如果我理解你的问题,答案可能是这样的:

    SELECT *
  FROM table_1 t1
 WHERE table_1.start_date >= to_date('14/01/2012', 'DD-MM-YYYY')
   AND table_1.start_date <=
       (SELECT MAX(t11.insert_date) FROM table_1 t11 WHERE t1.id = t11.id)

下面的查询选择开始日期大于或等于最后开始日期(10天)的所有行。我相信这对firebird是正确的

 SELECT *
FROM table t1
WHERE t1.startdate >= dateadd(-10 day to MAX(t1.startdate)

相关内容

  • 没有找到相关文章

最新更新