MS Access Sql查询不是聚合函数的一部分。使用Count函数

时间:2015-11-30 02:45:10

标签: sql ms-access

我正在尝试在Access上执行此查询:

SELECT DISTINCT Phys.FName, 
Phys.LName, COUNT(*) AS NumberPatients
FROM Phys, Summary 
WHERE (((Summary.Phys_ID)=[Enter Physician Id]))
AND Phys.Phys_ID = Summary.Phys_ID;

但是我收到了这个错误:

  

您尝试执行不包含指定的查询   表达式“FName”作为聚合函数的一部分。 (错误3122)

只有count或只是不同的FName / LName,查询才能正常工作。当我将它们组合起来时,这只是一个问题。

2 个答案:

答案 0 :(得分:2)

使用group by,而非select distinct和明确的JOIN

SELECT Phys.FName, Phys.LName, COUNT(*) AS NumberPatients
FROM Phys INNER JOIN
     Summary 
     ON hys.Phys_ID = Summary.Phys_ID
WHERE Summary.Phys_ID = [Enter Physician Id]
GROUP BY Phys.FName, Phys.LName;

答案 1 :(得分:0)

尝试

SELECT DISTINCT Phys.FName, 
Phys.LName, COUNT(*) AS NumberPatients
FROM Phys, Summary 
WHERE (((Summary.Phys_ID)=[Enter Physician Id]))
AND Phys.Phys_ID = Summary.Phys_ID
Group by Phys.FName, Phys.LName

当您将聚合函数与其他列一起使用时,必须按这些列进行分组才能获得结果。有关详情,请阅读documentation