sql - SQL - 按日期标记最近的条目
问题描述
我有以下数据。
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))
解决方案
您不需要使用子查询。只需获取最大值(应用日期)
SELECT ClientId, AccountType, max(dateapplied) dateapplied
from clienttable
where accountType = 'Current'
Group by ClientId, AccountType
推荐阅读
- mongodb - 如何在副本集中的辅助节点上使用 conn.db.admin().command()?
- here-api - 我可以使用 Here Routing API 中的 calculateRoute 方法获取桥段吗?
- javascript - HTML 页面的单行中的多个圆环图和饼图
- asp.net - 如何在.Net framework web api中修改端口
- reactjs - 下一个和上一个按钮无法正常工作
- javascript - while循环中的条件表达式不能按预期工作
- c# - c#字符串到时间码
- android - canvas.save(Canvas.ALL_SAVE_FLAG) 在 android 9 中不起作用
- java - 如何使用 FirestoreRecyclerAdapter 进行复杂查询?
- webpack - 具有 2 个使用共享文件的反应应用程序的单存储库的最佳 webpack 结构