MS Access - 识别具有最小值

时间:2015-10-19 02:57:53

标签: sql database ms-access

我有一个MS Access查询,它提取[产品名称]和[价格]以及其他几个字段。我的问题是我有多个实例,其中[产品名称]是重复的,[价格]在重复之间可能相同或不同。我希望查询只显示每个重复项的一条记录以及与该[产品名称]相关联的最小[价格] ....一个没有重复项的大型主列表.....最终清单应包括所有没有重复的[产品名称]及其相关价格。

我知道这应该很简单,但无论出于什么原因,我都会在脑子上绞尽脑汁。我尝试使用交叉表查询已经返回每个唯一[产品名称]的最小值,但我有很多记录,交叉表查询错误列数。

非常感谢任何帮助。

AC

1 个答案:

答案 0 :(得分:0)

MSAccess不支持分区功能。

但是,如果您能够将数据导入SQL数据库,则可以使用窗口/分区功能轻松完成此操作,这样您就可以执行有趣的操作,例如选择最便宜的2个产品等等。

 SELECT *
 FROM
 (
     SELECT ROW_NUMBER() 
          OVER (PARTITION BY [ProductName] ORDER BY [Price]) as RowNum, *
     FROM Table
 ) X 
 WHERE RowNum = 1

您现在可以正确获取标识为价格最低的行的实际行,并且您可以修改订购功能以使用多个条件,例如"向我显示最便宜得分的最新产品&# 34;等。