2013-08-28 155 views
5

我用下面的查询:聚合函数或GROUP BY子句

select Patients.LastName, 
    avg (PatientVisits.Pulse)as pulse, 
    avg (patientvisits.depressionlevel)as depressionLevel 
from Patients 
left join PatientVisits 
    on Patients.PatientKey=PatientVisits.PatientKey 

,但我得到了以下错误:

Msg 8120, Level 16, State 1, Line 1 Column 'Patients.LastName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

回答

6

你需要一个GROUP BY添加到您的查询:

select Patients.LastName, 
    avg (PatientVisits.Pulse)as pulse, 
    avg (patientvisits.depressionlevel)as depressionLevel 
from Patients 
left join PatientVisits 
    on Patients.PatientKey=PatientVisits.PatientKey 
GROUP BY Patients.LastName 

SQL Server要求您的SELECT列表中的任何列不在聚合函数b中e包含在GROUP BY中。由于您在汇总数据时试图返回Patients.LastName,因此您必须在该组中包含该列。

+0

非常感谢您的工作。我不能相信我错过了那么简单的事情。 – user2726146

相关问题