过去10天基于上次可用数据的值

时间:2014-06-23 10:28:39

标签: sql firebird

我必须从表中获取数据,以便我获取数据的开始日期基于插入最后一个数据的日期。

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

因为我不知道插入数据的最后日期,所以首先我必须获取最大日期,并根据我可以找到开始日期。有没有快速的方法来做到这一点。所以一切都在单一和快速查询中处理。

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,答案可能如下:

    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)

答案 1 :(得分:0)

以下查询选择开始日期大于或等于上次开始日期的所有行 - 10天。我相信它对firebird来说是正确的

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