2

我正在尝试列出最新事件(仅输出一行)

基本上是事件的最后日期和事件的最后时间。

下面的代码如果是 max(starttime) 则不起作用,但如果是 min(starttime) 则有效

但是,如果我做 min(starttime),它会告诉我事件的最后日期,但最后日期的第一个事件。

我想得到最后一个日期的最后一个事件时间的结果。(因此只有 1 行输出)

有任何想法吗?

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

2 回答 2

3

问题似乎是逻辑,因为您的 WHERE 语句可能会生成两个不相交的集合(表的 max(time) 不与 max(date) 共享一行)。像下面这样的东西呢:(DISTINCT 确保只有一个记录)

SELECT MAX(dateheld) AS 'MaxDate', starttime 
FROM Events
WHERE starttime in 
      (SELECT MAX (starttime) AS temp FROM events)
于 2012-09-02T02:30:39.843 回答
1

您可以将结果限制为返回的前 1 条记录:

select * from events
order by dateheld, starttime desc
limit 1

编辑以满足新要求

select max(starttime) as maxstart, dateheld
from events
where dateheld = (select max(dateheld) as maxdateheld from events)
于 2012-09-02T02:33:31.337 回答