我正在尝试找到一种方法来显示事件表中的最后一个事件(上次日期和时间),同时显示该事件的所有列而不使用ORDER BY。
例如:
SELECT * from Events
where dateheld in (select max(dateheld) from events)
AND starttime in (select max(starttime) from events)
当我把MAX启动时,它什么也没显示。当我把MIN启动时它起作用但显示该日期的最早时间而不是最新时间。
答案 0 :(得分:1)
我猜你可以打印出你的记录,把它们扔下楼梯,那些最远的记录会有“最轻”的日期。没有订单,您无法排序。这就像想要不湿的水。除非你的数据自然按照你想要的顺序出现,否则你必须排序。
当然,如果您只想要具有绝对最近日期的记录,并且不需要多于该记录,那么
SELECT yourdatetimefield, ...
FROM yourtable
HAVING yourdatetimefield = MAX(yourdatetimefield)
答案 1 :(得分:0)
如果您只是寻找最新项目:
当你有单独的日期和时间字段时,编辑会变得有点复杂,但这应该有效。对于日期和时间应存储在一个字段中的情况,这是一个荒谬的问题。
SELECT *
FROM (
SELECT *
FROM Events
WHERE dateTime = (SELECT MAX(dateheld) FROM Events)
) temp
WHERE starttime = (SELECT MAX(starttime) FROM (
SELECT *
FROM Events
WHERE dateTime = (SELECT MAX(dateheld) FROM Events)
) temp 2 )