我有一个库存条目列表。每个条目都有日期、项目名称和卷。我现在正在做的是根据最近日期的数量选择前 10 个项目,然后在我的表中跟踪过去 5 天这些项目的数量。我缺少的一件是我想根据项目的最新日期批量订单来订购结果表,即
Date Item Volumes
1/20 Dog 5
1/20 Bird 4
1/20 Cat 2
1/19 Dog 3
1/19 Bird 6
1/19 Cat 10
1/18 Dog 0
1/18 Bird 2
1/18 Cat 0
下面是我正在运行的 sql 代码的清理版本。截至目前,我在按日期排序后所做的第二次排序只是按项目名称的字母顺序排序。
SELECT
TOP_VOLUMES.NAME,
DATA.VOLUMES,
DATA.TIMESTAMP
FROM DATA
RIGHT JOIN
(SELECT TOP 10 NAME
FROM DATA
WHERE TIMESTAMP = (SELECT MAX(TIMESTAMP) FROM DATA)
ORDER BY VOLUMES DESC, NAME) AS TOP_VOLUMES
ON TOP_VOLUMES.NAME = DATA.NAME
WHERE ((SELECT MAX(TIMESTAMP) FROM DATA) - DATA.TIMESTAMP < 5)
ORDER BY DATA.TIMESTAMP DESC , DATA.NAME;
我真的很想避免为此创建任何临时表。有什么方法可以在连接中的 select 语句中做到这一点?任何帮助将不胜感激!
我遇到了一个链接,其中可能包含您正在寻找的答案 - Access SQL how to make an increment in SELECT query
希望这对你有帮助!