-3

我试图找到一种方法来显示事件表中举行的最后一个事件(最后日期和时间),同时显示该事件的所有列而不使用 ORDER BY。

例如:

SELECT * from Events
where dateheld in (select max(dateheld) from events)
AND starttime in (select max(starttime) from events)

当我输入 MAX starttime 时,它​​什么也不显示。当我输入 MIN starttime 时,它​​可以工作,但会显示该日期的最早时间而不是最晚时间。

4

2 回答 2

1

我想你可以打印出你的记录,把它们扔下楼梯,走得最远的那些就有“最轻”的日期。没有顺序就无法排序。这就像想要不湿的水一样。除非您的数据自然地按照您想要的顺序出现,否则您必须排序。

当然,如果您只想要具有绝对最近日期的记录,并且只需要那条记录,那么

SELECT yourdatetimefield, ...
FROM yourtable
HAVING yourdatetimefield = MAX(yourdatetimefield)
于 2012-09-14T00:20:29.943 回答
0

如果您只是在寻找最新的项目:

当您有单独的日期和时间字段时,编辑会变得更加复杂,但这应该可以工作。对于日期和时间应该存储在一个字段中的情况,这是一个荒谬的组合。

SELECT * 
FROM (
  SELECT *
  FROM Events
  WHERE dateTime = (SELECT MAX(dateheld) FROM Events)
) temp
WHERE starttime = (SELECT MAX(starttime) FROM (
  SELECT *
  FROM Events
  WHERE dateTime = (SELECT MAX(dateheld) FROM Events)
) temp 2 )
于 2012-09-14T00:21:02.127 回答