2012-10-31 70 views
0

例如,我想只得到賣家的前10名客戶。因此,它看起來像這樣(沒有頂部10):如何在一個查詢中獲得最好的10個(前10位)

Select seller, customer, sells from table order by seller asc, sells desc 

但是,這會給我所有的值。我只想每個賣家都有前10名顧客。

在ms-access 2003中這甚至可能嗎?如果是的話,請給我一個提示, 感謝;)

回答

2

論行:

SELECT seller, 
     customer, 
     sells 
FROM table a 
WHERE customerid IN (SELECT TOP 10 customerid 
         FROM table b 
         WHERE b.sellerid = a.sellerid 
         ORDER BY sells DESC) 
ORDER BY seller ASC, 
      sells DESC 

需要注意的是MS Access返回比賽,所以你可能會獲得超過10點返回。如果需要確切的10,您可以通過一個唯一的ID進行訂購以及銷售。

+0

我會測試並提供一些反饋。它看起來不錯,但在我的上下文中,查詢非常複雜。我會盡力實現它,但這需要時間,如果你有一個更簡單的解決方案,請說;) –

+0

沒有更簡單的解決方案來獲得每組頂級* n *。 – Fionnuala

+0

好的,謝謝,);從我看到的這裏我認爲它的工作原理 –

相關問題