שימוש כמו ב-WHERE IN, רק עם יחס AND

saar85

New member
שימוש כמו ב-WHERE IN, רק עם יחס AND

שלום לכולם.
נניח שיש לי את הטבלה הבאה
userId departmentId
4 1
3 1
5 1
4 2
5 2
אני רוצה להביא את כל מי שנמצא גם במחלקה 3 גם במחלקה 4 וגם במחלקה 5. כלומר במקרה הזה את UserId=1.
אני לא יודע מראש כמה מחלקות יכולות להיות לכל משתמש.
אם זה היה נגיד רק 2 או 3 יכולתי לפתור את זה במכפלה קרטזית, אבל זה לא ידוע מראש.
האם יש דרך לבחור את המשתמש שנמצא בכמה מחלקות עם יחס AND בניהם, כמו שיש את WHERE IN שזה עם יחס OR?
 

גרי רשף

New member
קצת מסובך..

..אבל עובד:
Select *
From #User U
Where Not Exists (Select *
From (Values (3),(4),(5)) T(DepID)
Where Not Exists (Select *
From #UserDep UD
Where UD.UserID=U.UserID
And UD.DepID=T.DepID));​
 
למעלה