我坚持这个错误:
消息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
答案 0 :(得分:1)
如果选择了列,它必须出现在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子句中。
答案 1 :(得分:0)
你试过这个:
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
答案 2 :(得分:0)
您告诉查询GROUP BY您未选择的列。您需要确保选择GROUP BY字段中包含的列。
@ Question3CPO将起作用,除了它在SELECT语句中包含Subjects.subj_CODE并且可能不包含在函数中。