我有一个MS Access查询,它提取[产品名称]和[价格]以及其他几个字段。我的问题是我有多个实例,其中[产品名称]是重复的,[价格]在重复之间可能相同或不同。我希望查询只显示每个重复项的一条记录以及与该[产品名称]相关联的最小[价格] ....一个没有重复项的大型主列表.....最终清单应包括所有没有重复的[产品名称]及其相关价格。
我知道这应该很简单,但无论出于什么原因,我都会在脑子上绞尽脑汁。我尝试使用交叉表查询已经返回每个唯一[产品名称]的最小值,但我有很多记录,交叉表查询错误列数。
非常感谢任何帮助。
AC
答案 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;等。