我从未真正做过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中做同样的事情?
答案 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