我有一个库存条目清单。每个条目都有一个日期、物品名称和数量。现在我正在根据最近日期的数量选取前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;
我真的希望能够避免创建任何临时表。有没有办法在联接语句中的选择语句中完成它?非常感谢您的帮助!
ORDER BY DATA.TIMESTAMP DESC, TOP_VOLUMES.RANK
,其中RANK
是我已经添加到内部选择语句的某个自动递增字段。 - Ellen