Ошибка SQL-запроса
Я застрял в этой ошибке:
Сообщение 8120, уровень 16, состояние 1, строка 2 Столбец Subjects.off_CODE недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
Я не знаю, что не так с этим запросом.
use Enlistment
go
SELECT Subjects.off_CODE, Subjects.subj_CODE, Subjects.description,
Subjects.unit, COUNT(Enlistment.off_CODE) FROM Enlistment, Subjects
WHERE Subjects.off_CODE = 11315
GROUP BY Enlistment.off_CODE
3 ответа
Если столбец выбран, он должен появиться в предложении GROUP BY, если только он не содержится в статистической функции (как сказано в сообщении об ошибке).
use Enlistment
go
SELECT Subjects.off_CODE, Subjects.subj_CODE, Subjects.description,
Subjects.unit, COUNT(Enlistment.off_CODE) FROM Enlistment, Subjects
WHERE Subjects.off_CODE = 11315
GROUP BY Subjects.off_CODE, Subjects.subj_CODE, Subjects.description,
Subjects.unit
Итак, в вашем примере единственное выбранное поле, которое не нужно включать в предложение GROUP BY, - это Enlistment.off_CODE, поскольку оно используется в статистической функции COUNT (COUNT (Enlistment.off_CODE)). Все остальные поля должны быть включены в предложение GROUP BY.
Вы сообщаете запрос GROUP BY столбцу, который вы не выбираете. Вам необходимо убедиться, что ВЫ ВЫБИРАЕТЕ столбцы, содержащиеся в поле GROUP BY.
@ Question3CPO будет работать, за исключением того, что он включает Subjects.subj_CODE в операторе SELECT и, вероятно, не содержится в функции.
Вы пробовали это:
GROUP BY Enlistment.off_CODE, Subjects.off_CODE
или же
SELECT DISTINCT Subjects.off_CODE, Subjects.subj_CODE, Subjects.description,
Subjects.unit, COUNT(Enlistment.off_CODE) FROM Enlistment, Subjects
WHERE Subjects.off_CODE = 11315
GROUP BY Enlistment.off_CODE, Subjects.off_CODE
?