2012-09-02 65 views
2

我想,列出最新的事件(只有一行输出)SQL找到最后日期和事件

基本上事件的最后日期和对事件的最后时间的最后一次。

如果是最大(开始时间)下面的代码不能正常工作,但它的作品,如果它是分钟(开始时间)

但是,如果我做的分钟(开始时间),它会告诉我的最后一个事件的日期,但该最后日期的第一个事件。

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

任何想法?

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

回答

3

这个问题似乎是逻辑的WHERE语句可以产生两个不相交集(该表的最大(时间)不与最大共享行(日期))。对一些诸如以下内容:(DISTINCT确保只有一个记录)

SELECT MAX(dateheld) AS 'MaxDate', starttime 
FROM Events 
WHERE starttime in 
     (SELECT MAX (starttime) AS temp FROM events) 
+0

太棒了!我看...一个子查询中的子查询..嵌套(Y) – Tuzki

+0

我会在6分钟内接受这个答案,因为它不允许我现在接受。 – Tuzki

+0

这不起作用。任何时候2个或更多事件具有相同的开始时间,所有匹配的记录将被返回。 – gangreen

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) 
+0

erm那会工作,但我现在可以使用Order By :) – Tuzki

+0

是这个功课? – gangreen

+0

是的。 我以前订购过,它工作。但后来我意识到我们不允许在这个问题中使用Order By。 – Tuzki