我有一张包含以下数据的表格。我正在尝试根据a varchar列的值从表中获取最新记录。
用户日期Version_No
1 1-Aug-13 5.0.12.23
1 14-Aug-13 2.0.7P
1 20-Aug-13 2.0.8P
2 2-Aug-13 5.0.12.23
2 20-Aug-13 2.0.8P
3 1-Aug-13 2.0.7P
3 14-Aug-13 5.0.12.23
3 20-Aug-13 5.0.12.23
4 20-Aug-13 5.0.12.23
5 14-Aug-13 5.0.12.23
5 20-Aug-13 2.0.8P
Version_No列的数据类型是Varchar。 我希望结果能够为我提供他们在20-Aug-13上运行的版本的用户列表。
用户日期Version_No
1 20-Aug-13 2.0.8P
2 20-Aug-13 2.0.8P
3 20-Aug-13 5.0.12.23
4 20-Aug-13 5.0.12.23
5 20-Aug-13 2.0.8P
我使用了带有Version_no列的max函数,但是在大多数情况下,它不能正常返回最高值5.0.12.23。
请帮忙!
答案 0 :(得分:0)
使用子查询获取每个用户的最新日期:
SELECT yt.User, yt.Date, yt.Version_No
FROM (SELECT User, MAX(Date) AS LatestUpdate FROM YourTable GROUP BY User) AS lu
INNER JOIN YourTable AS yt ON lu.LatestUpdate = yt.Date AND lu.User = yt.User
根据评论进行编辑。
答案 1 :(得分:0)
Select user, date, Version_No from tablename where trunc(date) = '20-AUG-2013'
我使用trunc来消除时间问题。加上日期格式可能会关闭,具体取决于您使用的数据库和NLS格式。