我試圖執行一個查詢來返回他們只有1個交叉引用號碼的訂單。SQL訪問COUNT在WHERE子句
像這樣的東西(字段名和表更改,以保護無辜;-P):
SELECT ordernum FROM orders WHERE (COUNT(orderref) = 1) ORDER BY ordernum;
的問題是,其總的功能是不可能在WHERE子句中使用Access(不知道它在正常的SQL中是允許的)。
如何使用Access SQL實現此目的?
我試圖執行一個查詢來返回他們只有1個交叉引用號碼的訂單。SQL訪問COUNT在WHERE子句
像這樣的東西(字段名和表更改,以保護無辜;-P):
SELECT ordernum FROM orders WHERE (COUNT(orderref) = 1) ORDER BY ordernum;
的問題是,其總的功能是不可能在WHERE子句中使用Access(不知道它在正常的SQL中是允許的)。
如何使用Access SQL實現此目的?
的COUNT(*)必須在HAVING子句,因爲它被計算。此外,您缺少一個GROUP BY子句。
-- Updated statement
SELECT ordernum, COUNT(orderref) as Total
FROM orders
GROUP BY ordernum
HAVING COUNT(orderref) = 1
ORDER BY ordernum
有人發郵件給我說MS Access不支持HAVING子句。這對我來說是新聞。很久以前,我獲得了MOS ACCESS認證。
我們使用MS Access 2007的Northwind數據庫。由於列名不同,我改變了語法。但是,結果是一樣的。
我不知道如果在訪問工作,但嘗試這樣的事情
SELECT ordernum FROM orders group by orderref having count(*) = 1 ORDER BY ordernum;
嘗試使用SQL查詢:
SELECT ordernum,count(ordernum) as countorders FROM orders
GROUP BY ordernum
HAVING countorders = 1
ORDER BY ordernum;
試試這個,
SELECT ordernum, count(orderref)
FROM orders
ORDER BY ordernum, having count(orderref)=1;