SQL查询错误
我坚持这个错误:SQL查询错误
Msg 8120, Level 16, State 1, Line 2 Column 'Subjects.off_CODE' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
我不知道什么是错的这个查询。
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
如果选择了列时,它必须出现在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 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
?
仍然有同样的错误。 – eaponz 2013-04-11 14:48:44
你告诉查询到GROUP BY,你是不是选择列。您将需要确保您选择包含在GROUP BY字段中的列。
@ Question3CPO的会不同的是它包含在SELECT语句Subjects.subj_CODE工作,那就是在函数中可能不包含。
我想是这样,你使用的是MSSQL ..你需要使用所有比总一个GROUP BY子句中。在这样的条款的其他组的列将是'GROUP BY Subjects.off_CODE,Subjects.subj_CODE,主题.description, Subjects.unit' – Meherzad 2013-04-11 14:46:57
您是否知道您正在桌子之间执行笛卡尔产品? – Lamak 2013-04-11 14:48:16
谢谢你Meherzad。 – eaponz 2013-04-11 14:52:33