我有一个我似乎无法弄清楚的快速问题。我正在尝试列出最终用户项目(只是一个示例),只显示最新的评论。
ID Name EventDate Type
1 PC 12/12/2012 End User Items
1 PC 11/12/2012 End User Items
1 PC 10/11/2012 End User Items
2 Mobile 12/12/2012 End User Items
2 Mobile 11/01/2012 End User Items
2 Mobile 12/12/2011 End User Items
3 Server 12/12/2013 Server
所以我会尝试这样的事情:
select * from systems where type = "End User Items" group by ID
但结果仍然没有显示最新日期。 任何帮助将不胜感激!
答案 0 :(得分:0)
您是否尝试过如下MAX
日期?
SELECT Name,
MAX(EventDate),
Type
FROM systems
WHERE type = 'End User Items'
GROUP BY Name, Type
答案 1 :(得分:0)
您可以使用子查询获取ID和MAX日期,然后使用ID和MAX日期加入系统表。
SELECT s2.Name, s.EventDate
FROM system s2
INNER JOIN (SELECT ID, MAX(EventDate) EventDate
FROM systems
WHERE type = 'End User Items'
GROUP BY ID) AS s on s2.ID = s.ID AND s2.EventDate = s.EventDate
答案 2 :(得分:0)
将您要显示的列定义为GROUP BY字段而不进行汇总。选择那些字段和计算的汇总函数列(例如,max(),sum(),count())。
SELECT ID, Name, MAX(EventDate) as LastDate
FROM systems
WHERE type = 'End User Items'
GROUP BY ID, Name
您可能希望查看ID和名称。类型在这里是多余的,因为您只需要一个类型。您想获得组中的max()日期。返回的所有字段必须是摘要函数或GROUP BY列。