我正在尝试编写 SQL (Access 2010) 以从零件可以重复的表中选择具有最低价格的零件,因为其他一些字段是不同的。
看起来像这样的表:
Dist Part Num Ven Part Num Dist Desc Price
DD7777QED 7777QED DD Product A 10
IM7777QED 7777QED IM This is Product A 12
SY7777QED 7777QED SY Product A Desc 15
DD8888QED 8888QED DD Product B 15
IM8888QED 8888QED IM This is Product B 10
SY8888QED 8888QED SY Product B Desc 12
IM999ABC 999ABC IM Product C Desc 15
我正在尝试提取具有重复的 Ven Part Num 最低价格的每一行的所有详细信息。本质上,该供应商零件号价格最低的供应商行的所有详细信息。
上述样本数据的结果应该是这样的:
Dist Part Num Ven Part Num Dist Desc Price
DD7777QED 7777QED DD Product A 10
IM8888QED 8888QED IM This is Product A 10
IM999ABC 999ABC IM Product A Desc 15
谢谢
编辑:感谢 jurgen d 的回答,尽管我认为您的意思是使用 Ven Part Num(而不是 Dist Part Num)。我现在已经修改了这个查询,它几乎可以满足我的要求:
SELECT T1.*
FROM My_Table T1
INNER JOIN
(
SELECT [Ven Part Num], MIN(Price) AS MPrice
FROM My_Table
GROUP BY [Ven Part Num]
) T2 ON T1.[Ven Part Num] = T2.[Ven Part Num] AND T1.Price = T2.MPrice
现在的挑战是,如果两个 Dist 对相同的 Ven Part Num 具有相同的 MIN 价格,那么生成的提取包含该 Ven Part Num 的 2 行,但我只想要一个,或者都可以。我尝试了 TOP 1,但它运行并仅显示一行作为整个查询的结果。我期待 40K 行!如何在最终报告中仅提取这两行之一?
再次感谢!