ms访问查询

时间:2012-11-05 10:03:53

标签: ms-access

我从未真正做过ms访问查询,但今天我需要一个。我有2个表,模型和订单。从第一个表开始,这里有两个字段:数字和颜色,仅来自第二个数字,它只能等于表格中的数字值#34;模型" 。我需要的是选择最常见的颜色。在mysql中就像是

    SELECT models.color, orders.number  FROM  models
    INNER JOIN orders ON (orders.number =models.number) 
    group by color
    order by count(color) desc limit 1

但在ms-access中似乎无法正常工作 你如何编写查询来在ms-access中做同样的事情?

2 个答案:

答案 0 :(得分:2)

您只需要摆脱限制并使用Top 1:

SELECT Top 1 models.color  FROM  models
INNER JOIN orders ON (orders.number =models.number) 
group by color
order by count(color) Desc

但是,对于Top n 有一个警告,在MS Access中,Top n 将返回匹配项,因此如果多个项目具有相同的计数,则将返回所有项目。如果这不合适,你可以通过一个唯一的ID排序来解决这个问题:

order by count(color) desc, OrderID

另请注意,数字是保留字。

答案 1 :(得分:2)

试试这个:

SELECT TOP 1 models.color, COUNT(orders.number)  FROM  models
INNER JOIN orders ON (orders.number=models.number) 
GROUP BY models.color
ORDER BY 2 desc