2013-07-05 85 views
0

我試圖編寫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行我期待!如何在最終報告中只提取這兩行中的一行?

再次感謝!

+0

對不起,我力得到的,你是說達DIST是一個獨特的密鑰,那麼它怎麼可能重複,有IM在3條 –

+0

嗨馬里蘭州佩爾韋茲×阿拉姆的Dist_Part_Num是唯一的密鑰(不重複)。 Juergen's的答案似乎很接近,因爲我認爲他誤以爲Dist_Part_Num和Ven_Part_Num。一旦我做出這個改變,我最終會接近結果。唯一的問題是兩個Dist行(不同的Dist)在同一個MIN價格中包含相同的Ven_Part_Num ...我得到兩行,我真的想要這兩個行中的任何一行,因此只有一行被提取。你知道我怎麼能過濾到一行嗎? – TheRealPapa

+0

在內部查詢中嘗試使用不同的關鍵字 –

回答

1
select t1.* 
from your_table t1 
inner join 
(
    select [Dist Part Num], min(price) as mprice 
    from your_table 
    group by [Dist Part Num] 
) t2 on t1.[Dist Part Num] = t2.[Dist Part Num] and t1.price = t2.mprice 
+0

嗨Juergen d,感謝您的快速回復!我嘗試了你的問題,但我重複了Vendor Part Num值......實質上,Vendor Part Num應該在報告中出現一次,但包含最低價格和來自供應商銷售的所有詳細信息......您的查詢不是我以前做過,所以難怪我被卡住了!你有什麼建議來檢查爲什麼結果會像我一樣?謝謝! – TheRealPapa

相關問題