我试图编写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
我试图提取具有最小代价的是法师部分民是重复的每一行的所有细节。实质上,该供应商行的所有详细信息对于该供应商零件编号具有最便宜的价格。
从上面的样本数据的结果应该是这样的:
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
感谢
编辑:谢谢您尤尔根·d的回答,虽然我觉得你想用法师部分NUM(而不是Dist Part Num)。我已经ammended到了现在这个查询几乎工程,我想:
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
现在面临的挑战是,如果两个地区具有相同的最低报价为同一法师部分民,然后将得到的提取物中含有2排为Ven Part Num,但我只想要一个,要么会做。我尝试了TOP 1,但是它运行并且由于整个查询而导致只有一行。我有40,000行我期待!如何在最终报告中只提取这两行中的一行?
再次感谢!
对不起,我力得到的,你是说达DIST是一个独特的密钥,那么它怎么可能重复,有IM在3条 –
嗨马里兰州佩尔韦兹×阿拉姆的Dist_Part_Num是唯一的密钥(不重复)。 Juergen's的答案似乎很接近,因为我认为他误以为Dist_Part_Num和Ven_Part_Num。一旦我做出这个改变,我最终会接近结果。唯一的问题是两个Dist行(不同的Dist)在同一个MIN价格中包含相同的Ven_Part_Num ...我得到两行,我真的想要这两个行中的任何一行,因此只有一行被提取。你知道我怎么能过滤到一行吗? – TheRealPapa
在内部查询中尝试使用不同的关键字 –