Наше приложение позволяет администраторам добавлять «Свойства пользователя», чтобы они могли адаптировать систему под свои собственные системы управления персоналом. Например, если в вашей компании есть отделы, вы можете определить «Отделы» в таблице «Свойства», а затем добавить значения, соответствующие «Отделам», такие как «Ювелирные изделия», «Электроника» и т. Д. Затем вы сможете назначить отдел пользователям .
Вот схема:
Схема http://www.mindgravy.net/wp-content/uploads/2010/04/image.png
В этой схеме пользователь может иметь только одно UserPropertyValue для каждого свойства, но ему не обязательно иметь значение для свойства.
Я пытаюсь создать запрос, который будет использоваться в SSRS 2005, а также использовать PropertyValues в качестве фильтра для пользователей. Мой запрос выглядит так:
SELECT UserLogin, FirstName, LastName
FROM Users U
LEFT OUTER JOIN UserPropertyValues UPV
ON U.ID = UPV.UserID
WHERE UPV.PropertyValueID IN (1, 5)
Когда я запускаю это, если у пользователя есть ЛЮБОЕ из значений свойств, они возвращаются. Я хотел бы, чтобы этот запрос возвращал пользователей со значениями BY PROPERTY.
Таким образом, если PropertyValueID = 1 относится к Отделу (Ювелирные изделия), а PropertyValueID = 5 относится к EmploymentType (Полная занятость), я хочу вернуть всех пользователей, которые находятся в Отделе украшений и имеют статус EmployeeType полного времени, можно ли это сделать?
<Ч />
Вот полный пример данных:
- Пользователь A имеет Department (Ювелирное значение = 1) и EmploymentType (значение FullTime = 5)
- Пользователь B имеет Department (Электронное значение = 2) и EmploymentType (FullTime значение = 5)
- У пользователя C есть Department (ювелирное значение = 1) и EmployementType (PartTime value = 6)
Мой запрос должен возвращать пользователя А только с использованием вышеуказанного запроса
UPDATE:
Я должен заявить, что этот запрос используется в качестве набора данных в SSRS, поэтому переданный в запрос параметр будет @PropertyIDs и определен как многозначный параметр в SSRS.
WHERE UPV.PropertyValueID IN (@PropertyIDs)