[英]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.