2012-09-02 93 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