[英]MySQL get MAX date
我有一個事件表和相關的EventAddress表。 我想獲取在特定日期具有最近時間且少於給定時間的事件的地址。 因此,如果今天有2個事件,一個在2 pm-3pm,另一個在5 pm-6pm,而我的下一個事件在7 pm-8pm,則我想獲取結束時間早於新事件開始時間的事件。 因此,在這種情況下,我想要事件的地址是5-6pm。 希望有道理。 以下是我嘗試遵循此SO職位后到目前為止所獲得的內容 。
SELECT
ea1.Address,
ea1.City,
ea1.State,
ea1.Zip,
e.EventEndDate
FROM EventAddress ea1
INNER JOIN (SELECT
Events.EventAddressId,
MAX(Events.EventEndDate) AS maxdate
FROM Events
GROUP BY Events.EventAddressId) max_record
ON max_record.EventAddressId = ea1.EventAddressId
INNER JOIN Events e
ON ea1.EventAddressId = e.EventAddressId
WHERE DATE(e.EventStartDate) = '2014-11-06'
AND e.FranchiseId = 1
AND TIME(e.EventEndDate) <= '18:00:00'
編輯:內部SELECT返回正確的結果,但最終結果仍返回2事件。
我認為你需要改變
WHERE DATE(e.EventStartDate) = '2014-11-06'
AND e.FranchiseId = 1
AND TIME(e.EventEndDate) <= '18:00:00'
到EventStartDate或EventEndDate。 我不確定您的數據結構如何,但我假設它類似於“ 2014-11-06 18:00:00”。 如果是這樣,您將需要使用與datepart等效的mysql。
我在外部選擇中添加了MAX(TIME(e.EventEndDate)) AS themax
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.