最近的 TIMESTAMP 加入相同 table

Most recent TIMESTAMP joining the same table

我有一个 table 列:开始点、结束点、开始日期、结束日期、乘车编号 我需要从中接收所有记录,并且 END POINT, STARTE DAT, END DATE 来自同一起点的最新记录(开始日期)。

示例:

  1. 起点 - A,终点 - B,开始日期 1/1/1 10:30,结束日期 1/1/1 10:35
  2. 起点 - A,终点 - C,开始日期 1/1/1 10:20,结束日期 1/1/1 10:35
  3. 起点 - A,终点 - B,开始日期 1/1/1 10:25,结束日期 1/1/1 10:35
  4. 起点 - A,终点 - D,开始日期 1/1/1 10:27,结束日期 1/1/1 10:35

所以我需要从相同的起点t(在例如它是 A,终点无关紧要)对于每条记录。

所以对于 骑行 1,我应该得到 骑行 4。对于 2 我应该得到 nothing (这是最后一次骑行),对于 3 我应该得到记录 2 和记录 4 我应该得到记录 3。等等。

问题是起点和开始日期很多。

我试图使用 MAX 函数(第一次旅行的开始日期 < maX(上次旅行的开始日期))加入相同的 table 开始日期条件,但它不起作用。

你知道如何加入吗?

像下面这样的东西应该可以完成这项工作。但是,如果同一开始日期有多个记录,则将返回两个记录。您可能必须通过选择最小 rowid 或最大 rowid 来决定选择其中一个。

 Select 
    a.STARTPOINT,a.ENDPOINT, a.STARTDATE, a.ENDDATE,a.RIDENUMBER,recentride.ENDPOINT,recentride.STARTEDATE,recentride.ENDDATE
    from ridetable a,ridetable recentride
    where a.startpoint = recentride.startpoint 
    and  recentride.startedate < a.STARTEDATE
    and  recentride.startedate = (select max(c.STARTEDATE) 
                                  from ridetable c
                                  where c.startpoint = a.startpoint
                                  and c.startedate < a.STARTEDATE)