您好,这是有效的sql语句,并且在SQL Server女士中正常工作。
select classes.Id, classes.className, classes.Level, classes.timing
from classes
inner join StudentClasses on classes.Id = StudentClasses.classId;
它产生的结果很好。
13 Trigonometry Beginar Morning
13 Trigonometry Beginar Morning
13 Trigonometry Beginar Morning
14 Maths Advanced Evening
15 Trigonometry Advanced Evening
现在我想按classes.Id对它们进行分组,但是当我尝试按以下方式使用分组依据时,它会产生错误:
select classes.Id, classes.className, classes.Level, classes.timing
from classes
inner join StudentClasses on classes.Id = StudentClasses.classId
group by classes.Id
;
这是错误:
Msg 8120, Level 16, State 1, Line 1
Column 'classes.className' is invalid in the select list because it is not contained in either an
aggregate function or the GROUP BY clause.
您必须按所选的所有列分组,但汇总列除外。尝试以下。
如果有重复项,则可以使用distinct
。
select classes.Id, classes.className, classes.Level, classes.timing
from classes
inner join StudentClasses on classes.Id = StudentClasses.classId
group by classes.Id, classes.className, classes.Level, classes.timing
;