SQL最新日期

tin*_*ime 2 sql sql-server

我有一个有趣的逻辑,我似乎无法理解.

我们有一个Purchase表,其中每个Purchase都链接到Customer和Date.我们希望提取每个客户最接近每个月末的购买.

例如,

CustomerID   |  Date
1            |  01/20/2009
2            |  01/26/2009
1            |  01/21/2009
1            |  02/02/2009
Run Code Online (Sandbox Code Playgroud)

应该回来....

CustomerID   |  Date
2            |  01/26/2009
1            |  01/21/2009
1            |  02/02/2009
Run Code Online (Sandbox Code Playgroud)

有关使用SQL Server执行此操作的简单方法的任何想法吗?

Dav*_*d M 12

这个怎么样?

SELECT  CustomerID, MAX(Date)
FROM    Purchase
GROUP BY CustomerID, YEAR(Date), MONTH(Date)
Run Code Online (Sandbox Code Playgroud)