У меня есть три таблицы [AvailableEmployees]
, [AvailableAttributesTemp]
и [EmployeeAttributeMapping]
.
[AvailableEmployees]
Id Name
1000 Employee 1
1001 Employee 2
1002 Employee 3
1003 Employee 4
1004 Employee 5
[AvailableAttributesTemp] временная таблица может иметь больше строк
Id AttributeName
1 HRA
3 DA
[EmployeeAttributeMapper]
EmployeeId AttributeId
1000 1
1000 3
1001 1
1002 1
1002 3
1003 1
1004 4
Я хочу получить только EmployeeId
, которые имеют все атрибуты из [AvailableAttributesTemp]
(HRA
и DA
оба, хотя могут быть более двух атрибутов в списке), поэтому любой запрос для получения 1000, 1002.
Я написал запрос, используя оператор IN, который возвращает 1000, 1001, 1002, 1003. Теперь пытаюсь обновить запрос, чтобы использовать оператор AND для отфильтровать сотрудника, пробовал EXISTS, присоединиться, хотя каким-то образом не смог получить желаемый результат.
Этот сценарий является частью большого SP с несколькими временными таблицами и более 500 строк / с запросов.
Любая помощь будет оценена. Спасибо