所有,
我确信这是一个非常简单的SQL查询问题,但我确信这是一种很好的方法,也是一种非常糟糕的方法.留给我自己的设备,我很可能最终得到后者.所以…
我在Access中有一个表,其数据如下所示:
ID Value As_of 1173 156 20090601 1173 173 20081201 1173 307 20080901 1173 305 20080601 127 209 20090301 127 103 20081201 127 113 20080901 127 113 20080601 1271 166 20090201 1271 172 20081201 1271 170 20080901 1271 180 20080601 ...
我想得到的是每个唯一ID的“Value”,其中包含最新的“As Of”日期(采用YYYYMM格式).
所以,我的结果集应如下所示:
ID Value As_of 1173 156 20090601 127 209 20090301 1271 166 20090201
请注意,不同的ID将具有不同的“截止日期”日期.换句话说,我不能简单地识别全球最新的,然后选择该日期的每一行.
对于它的价值,该表总共有大约200,000行,以及大约10,000个唯一ID.
提前谢谢了!
解决方法
如果您需要日期和值,则需要进行连接:
SELECT ID,Value,As_of from yourTable a inner join (SELECT ID,MAX(As_of) as As_of from yourTable group by ID) b on a.ID=b.ID and a.As_of = b.As_of