Department 表有 DepartmentID ,DepartmentNameTeacher 表有 DepartmentID ,TeacherID,TeacherName下面的子查询想统计每个系的教师人数select DepartmentID,
(select count(TeacherID) from Teacher group by DepartmentID) as 教师数
from Department出错:
消息 512,级别 16,状态 1,第 4 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
D.DepartmentID,D.DepartmentName,count(T.TeacherID) as 教师数
from
Department D,Teacher T
where
D.DepartmentID=T.DepartmentID
group by
D.DepartmentID,D.DepartmentName
(select count(TeacherID) from Teacher group by DepartmentID) as 教师数
from Department你这个
(select count(TeacherID) from Teacher group by DepartmentID)
会返回多个值,不同的DepartmentID,不同的count(TeacherID)
WHERE A.DepartmentID =B.DepartmentID
create table Department
(
DepartmentID int ,
DepartmentName varchar(100))create table Teacher
(
DepartmentID int ,
TeacherID int ,
TeacherName varchar(100)
)DELETE Department
insert into Department
select 1, 'AAA' union all
select 2,'BBB' union all
select 3, 'CCC'insert into Teacher
select 1,101,'WACKY' UNION ALL
SELECT 1,102,'XIAOWANG' UNION ALL
SELECT 2,201,'WIXAOZHANG' UNION ALL
SELECT 3,301,'JACKY' UNION ALL
SELECT 3,302,'ANDY' UNION ALL
SELECT 3,303,'JAKY'
select DepartmentID, (select count(TeacherID) from Teacher b
where a.DepartmentID=b.DepartmentID
group by DepartmentID) as 教师数from Department a
select A.DepartmentID, (select count(TeacherID) from Teacher B where A.DepartmentID=B.DepartmentID
group by DepartmentID) as 教师数from Department A