为查询结果添加索引

问题描述 投票:0回答:1

我有一个包含日期的表,一个包含多个书名的列,最后一个包含每个书名的销售数量的列。在任何一天,有 1 到 10 本书可以实现销售。也许“标题 1”10 块,“标题 3”5 块,“标题 4”15 块。改天,也许只有 Title 2 和 Title 7 等有销售。

现在,重点关注售出超过 1 个图书的那些日子,我可以使用 [ORDER BY] 销售数量选择日期、图书和销售数量,实际上结果是一个包含每日最高销量的表格通过订购条款。但是,如果我还需要每个标题的索引,以便我可以每天看到标题 3 的位置,该怎么办?是否可以在查询结果中添加这么简单的索引?

所以我希望实现的是如下的查询结果:

日期 标题 索引 销售
2024 年 8 月 15 日 标题 2 1 125
2024 年 8 月 15 日 第 4 篇 2 100
2024 年 8 月 15 日 第 5 篇 3 90
2024 年 8 月 15 日 第9篇 4 50
2024 年 8 月 16 日 标题1 1 230
2024 年 8 月 16 日 标题 2 2 150
2024 年 8 月 16 日 第 7 篇 3 100
2024 年 8 月 17 日 第 4 篇 1 50
2024 年 8 月 17 日 第9篇 2 20

我正在将 MS ACCESS 与 VB.NET 一起使用,并努力寻找一种方法。 谢谢

sql ms-access
1个回答
0
投票

您可以使用子查询来计算销量高于当前行的图书数量。这将获得您正在寻找的行排名(索引)。

如果2个作品的销量相同,则它们将获得相同的指数。如有必要,您还可以额外排名,例如按名称排名。

参见示例

SELECT t1.*,
  (select count(*) from DateTitleIndexSales as t2 
   where t2.SalesDate=t1.SalesDate 
     and (t2.sales>t1.sales or (t2.sales=t1.sales and t2.title<t1.title))
   )+1 as index
FROM DateTitleIndexSales as t1
order by SalesDate, Sales desc,Title ;

© www.soinside.com 2019 - 2024. All rights reserved.