我必须从表中获取数据,以便我获取数据的开始日期基于插入最后一个数据的日期。
例如,我有24/01/2011
到现在的数据。但是对于某些特定ID,我们在24/01/2012
上插入了最后一个数据。在这种情况下,对于该ID,我必须从14/01/2012
获取数据到24/01/2012
。
因为我不知道插入数据的最后日期,所以首先我必须获取最大日期,并根据我可以找到开始日期。有没有快速的方法来做到这一点。所以一切都在单一和快速查询中处理。
答案 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)