第一张表:状态
ID Status date
1 PRO 10-02-2010
1 LWR 8-06-2011
1 Active 10-06-2011
2 PRO 10-02-2010
2 LWR 8-06-2011
2 PRO 10-06-2011
3 PRO 10-02-2010
3 LWR 8-06-2011
3 APS 10-06-2011
第二张tabe:个人资料
ID NAME
1 Suba
2 Jhon
3 Felix
我期待的输出
1 Suba Active 10-06-2011
2 Jhon PRO 10-06-2011
3 Felix APS 10-06-2011
请解释如何获得最大日期值记录
答案 0 :(得分:5)
使用:
SELECT a.*
FROM YOUR_TABLE a
JOIN (SELECT t.id,
MAX(t.date) AS max_date
FROM YOUR_TABLE t
GROUP BY t.id) b ON b.id = a.id
AND b.max_date = a.date
答案 1 :(得分:2)
你在那里错过了一张桌子。我只看到一个,你不需要加入任何东西来获得你想要的结果。
SELECT ID, Status, MAX(date)
FROM `table`
WHERE status='active' /* optional */
GROUP BY ID, Status
此外,您显示的日期与sql server通常格式化日期的方式不匹配。你确定这是一个datetime专栏吗?如果不是,它应该是。在做其他任何事情之前修复它。
答案 2 :(得分:0)
SELECT *, max(date) as max_date FROM `table` order by max_date desc;