我有以下数据。
Clientid Accountype Dateapplied
1 Current 01/01/2018
1 Savings 03/01/2018
1 Current 17/01/2018
2 Current 01/04/2018
2 Current 15/04/2018
3 Savings 13/04/2018
3 Savings 15/04/2018
3 Current 14/04/2018
如何在每个客户端Accountype = Current
的位置选择最新的日期条目。基本上,我希望能够标记每个客户端的最新条目,因此当我可以进行选择时,我会将一个新字段设置为True。
所以我想带回来的结果是:
Clientid Accountype Dateapplied
1 Current 17/01/2018
2 Current 15/04/2018
3 Current 14/04/2018
我也尝试过按ClientID进行分组,然后选择使用max,但是无论如何,我都无法为每个clientid选择最新的分组。应该很简单,但要动脑筋。
因此尝试了类似的操作,但无法正常工作。感谢帮助任何人。
select Dateapplied,Clientid, Accountype
from Clienttable t1
WHERE EXISTS(SELECT 1
FROM Clienttable t2
WHERE Accountype = 'Current'
and t2.Clientid = t1.X_Clientid
GROUP BY t2.Clientid,
t2.Dateapplied
HAVING t1.Dateapplied= MAX(t2.Dateapplied))
答案 0 :(得分:0)
您不需要使用子查询。只需获取最大值(已应用日期)
SELECT ClientId, AccountType, max(dateapplied) dateapplied
from clienttable
where accountType = 'Current'
Group by ClientId, AccountType