首页 > 解决方案 > 如何使用 Microsoft Access 按日期获取最新记录

问题描述

我正在尝试按日期获取最新记录,但遇到了麻烦。这“有效”,但我收到的价格金额不正确。

我已经尝试了以下方法,并且知道 Last(price) 不正确。

SELECT sku, Last(price), Max(start_date)
FROM myTable
WHERE price_id="LEV001"
GROUP BY sku;

样本数据

sku        start_date     price_id         price

ABC        1/1/2015       LEV001         124.99

ABC        11/2/2018      LEV001         121.99

ABC        3/7/2016       LEV001         112.99

ABC        12/2/2016      LEV002         134.99

期望的结果

ABC        11/2/2018       121.99

标签: sqlms-accessgreatest-n-per-group

解决方案


如果您想要整个表中的最新记录,只需使用ORDER BYand TOP 1

SELECT TOP 1 *
FROM mytable
WHERE price_id="LEV001"
ORDER BY start_date DESC

如果您想要每个 SKU的最新记录,那么有多种选择。一种方法是使用反left join

select t.*
from mytable t
left join mytable t1 on t1.sku = t.sku and t1.price_id = t.Price_id and t1.start_date > t.start_date
where t.price_id = 'LEV001' and t1.sku is null
order by sku

推荐阅读