db2—如何从同一个表中获取最小日期和下一个日期

db2—如何从同一个表中获取最小日期和下一个日期,db2,Db2,我有一个带有日期属性的表,我需要执行一个查询,以获取最小日期和下一个最小日期 我试过: select min(SC.TIMESTAMP) as minDate, result.TIMESTAMP from Event SC INNER JOIN (SELECT TIMESTAMP from Event HAVING TIMESTAMP > min(SC.TIMESTAMP) ) as result on result.BUSINESSID1 = SC.BUSINESSID1

我有一个带有日期属性的表,我需要执行一个查询,以获取最小日期和下一个最小日期

我试过:

select min(SC.TIMESTAMP) as minDate, result.TIMESTAMP
from Event SC 
INNER JOIN 
(SELECT TIMESTAMP from Event
 HAVING  TIMESTAMP > min(SC.TIMESTAMP) 
) as result  on  result.BUSINESSID1 = SC.BUSINESSID1
where SC.BUSINESSSTEP = 'CONTAINER_PLACING_EVENT'
and SC.LOCATIONCODE = '1';
你能告诉我怎么做吗

提前感谢

您可以使用行号:


这将以行而不是列的形式返回,但它应该可以满足您的需要。如果您认为原始查询将为多个实体返回多行,则可以更改PARTITION BY子句,以包含使它们不同的列。

也许您可以将查询重新安排为以下形式:

select
    min(TS), min(TS2)
from
    event,
    (select TS as TS2 from event where TS > (select min(TS) from event))
根据需要添加额外的条件。我会尝试重写你的,但不完全清楚计数的标准应该是什么。如果您需要不止一行,例如每个LOCATIONCODE的min和min2,那么您可能需要一个GroupBy


此外,我不会调用列时间戳,因为它是一个保留字。

请定义下一个最小日期。这是否意味着MINSC.TIMESTAMP+1天?或者它是否意味着下一个表日期比MINSC.TIMESTAMP更新?
select
    min(TS), min(TS2)
from
    event,
    (select TS as TS2 from event where TS > (select min(TS) from event))