【发布时间】:2010-02-24 16:56:26
【问题描述】:
我不是 SQL 专家。我正在使用 SQL Server 2005,并试图弄清楚如何构造查询,以便它可以满足多个要求。我有两个表定义如下:
Classroom
- ID
- DepartmentID
- TeacherName
- RoomNumber
Student
- ID
- Name
- ClassroomID
我正在尝试构建一个查询,“给我部门 [x] 的教室或部门 [y] 有超过 30 名学生的教室,并给我部门 [w] 或部门 [z] 的教室有 40 多个学生。我对如何在我的 SQL 中正确混合 AND 和 OR 感到困惑。目前,我正在尝试以下方法:
SELECT
c.RoomNumber,
c.TeacherName
FROM
Classroom c
WHERE
c.[DepartmentID]=5 AND (SELECT COUNT(*) FROM Student s WHERE s.ClassroomID=c.ID > 30) OR
c.[DepartmentID]=6 AND (SELECT COUNT(*) FROM Student s WHERE s.ClassroomID=c.ID > 30) OR
c.[DepartmentID]=7 AND (SELECT COUNT(*) FROM Student s WHERE s.ClassroomID=c.ID > 40) OR
c.[DepartmentID]=8 AND (SELECT COUNT(*) FROM Student s WHERE s.ClassroomID=c.ID > 40)
我做错了什么?谢谢!
【问题讨论】:
标签: sql database sql-server-2005