sql - 如何使用 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
解决方案
如果您想要整个表中的最新记录,只需使用ORDER BY
and 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
推荐阅读
- javascript - angular 使用 ng-options 将 whitepace 视为 null
- angular - 如何创建一个仅在订阅时每 10 秒(间隔)更新其值的 Observable?
- scala - 如何将隐式方法添加到字符串
- ruby-on-rails - 在规范中存根日期的最佳方法是什么?
- python - 发生错误时如何重新执行 ThreadPoolExecutor 中的函数?
- java - Cassandra 节点修补期间的 NullPointerExceptions
- c# - 从正在运行的任务中获取堆栈跟踪
- listview - SPFx 如何识别列表视图的类型?
- java - EBCDIC 解包 comp-3 数据在 Java 中返回 40404**
- python - FileNotFoundError: [Errno 2] No such file or directory for different opening types