Я не эксперт по SQL. Я использую SQL Server 2005 и пытаюсь понять, как структурировать запрос так, чтобы он удовлетворял нескольким требованиям. У меня есть две таблицы, определенные следующим образом:
Classroom
- ID
- DepartmentID
- TeacherName
- RoomNumber
Student
- ID
- Name
- ClassroomID
Я пытаюсь создать запрос, который говорит: «Дайте мне классные комнаты в отделе [x] ИЛИ отделе [y], в которых обучается более 30 человек, И дайте мне классные комнаты в отделе [w] ИЛИ отделе [z] у меня более 40 студентов. Я не совсем понимаю, как правильно смешать AND и OR в моем SQL. В настоящее время я пытаюсь сделать следующее:
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)
Что я делаю не так? Спасибо!