Я пытаюсь использовать группу с внутренним соединением в sql, но выдает ошибку - PullRequest
0 голосов
/ 25 апреля 2020

Это действительный оператор SQL, работающий нормально на SQL Сервере.

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

Теперь я хочу сгруппируйте их по классам. Идентифицируйте, но выдает ошибку, когда я пытаюсь использовать группу следующим образом:

select classes.Id, classes.className, classes.Level, classes.timing
from classes
inner join StudentClasses on classes.Id = StudentClasses.classId
group by classes.Id;

Это ошибка, которую я получаю:

Сообщение 8120, уровень 16, состояние 1, строка 1
Столбец 'classes.className' недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

1 Ответ

1 голос
/ 25 апреля 2020

Вы должны сгруппировать по всем выбранным столбцам, кроме агрегированных. попробуйте следующее.

Если у вас есть дубликаты, вы можете использовать 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 
;
...