如何在查询中获得最好的10个(前10个),这个查询也是先由另一个字段排序的?

时间:2012-10-31 12:00:05

标签: ms-access select

例如,我希望卖家只获得前10名客户。所以它看起来像这样(没有前十名):

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

但这会给我所有的价值观。我只想为每个卖家提供前10个客户。

这在ms-access 2003中甚至可能吗?如果有,请给我一个提示, 谢谢;)

1 个答案:

答案 0 :(得分: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进行订购并进行销售。