我有一张这样的表:
Table A
Date Time ID Ref
110217 91703 A001 A1100056
110217 91703 A001 A1100057
110217 91703 A001 A1100058
110217 91703 A001 A1100059
110217 132440 A001 A1100057
110217 132440 A001 A1100058
110217 132440 A001 A1100060
110217 91703 B001 B1100048
110217 91703 B001 B1100049
110217 132440 B001 B1100049
110217 132440 B001 B1100050
我希望只有最新的数据和最终结果应该使用SQL:
Date Time ID Ref
110217 132440 A001 A1100057
110217 132440 A001 A1100058
110217 132440 A001 A1100060
110217 132440 B001 B1100049
110217 132440 B001 B1100050
(3条记录都具有相同的“最新”时间)
数据库会在特定时间自行更新。问题是:我不知道确切的时间,因此我不知道哪条记录是最新的。
答案 0 :(得分:3)
这适用于SQL Server:
SELECT TOP 1 WITH TIES *
FROM TableA
ORDER BY Date DESC, Time DESC
这个解决方案可能与服务器无关:
SELECT a.*
FROM TableA a
JOIN (
SELECT d.MaxDate, MAX(t.Time) AS MaxTime
FROM TableA t
JOIN (
SELECT MAX(Date) AS MaxDate
FROM TableA
) d
ON t.Date = d.MaxDate
GROUP BY d.MaxDate
) m
ON a.Date = m.MaxDate AND a.Time = m.MaxTime
答案 1 :(得分:1)
SELECT * FROM table ORDER BY date DESC, time DESC LIMIT 1;
将为您提供MySql中的最新行。
答案 2 :(得分:0)
您使用的是哪个数据库?实际上,您可以在将这两列转换为日期和时间格式后对其进行连接,然后按日期排序。所有这些都可以在查询中实现。