我正在尝试在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,查询才能正常工作。当我将它们组合起来时,这只是一个问题。
答案 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