我正在尝试执行查询以返回只有1个交叉引用号的订单.
这样的事情(字段名称和表格改变以保护无辜;-P):
SELECT ordernum FROM orders WHERE (COUNT(orderref) = 1) ORDER BY ordernum;
Run Code Online (Sandbox Code Playgroud)
问题是,在使用Access的WHERE子句中不能使用聚合函数(不确定它是否在普通SQL中允许).
如何使用Access SQL实现此目的?
计数(*)必须在HAVING子句中,因为它是计算的.此外,您缺少GROUP BY子句.
-- Updated statement
SELECT ordernum, COUNT(orderref) as Total
FROM orders
GROUP BY ordernum
HAVING COUNT(orderref) = 1
ORDER BY ordernum
Run Code Online (Sandbox Code Playgroud)
有人给我发了电子邮件,说明MS Access不支持HAVING子句.这对我来说是新闻.很久以前我获得了MOS ACCESS认证.
让我们使用Northwind数据库进行MS Access 2007.我改变了语法,因为列名不同.但结果是一样的.

