作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们的应用程序允许管理员添加“用户属性”,以便他们能够定制系统以匹配他们自己的人力资源系统。例如,如果您的公司有部门,您可以在属性表中定义“部门”,然后添加与“部门”相对应的值,例如“珠宝”、“电子”等……然后您就可以将部门分配给用户.
这是架构:
(来源:mindgravy.net)
在此架构中,用户的每个属性只能有一个 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)
WHERE UPV.PropertyValueID IN (@PropertyIDs)
最佳答案
我想出了如何让它以一种完全 hacky 的方式工作:
SELECT UserLogin, FirstName, LastName
FROM Users
LEFT OUTER JOIN
(
SELECT UserID
FROM UserPropertyValues
WHERE PropertyValueID IN (@PropertyIDs)
GROUP BY UserID
HAVING COUNT(UserID) =
(
SELECT COUNT(*) FROM
(
SELECT PropertyID FROM PropertyValues
WHERE ID IN (@PropertyIDs) GROUP BY PropertyID
) p
)
) filtered on Users.UserID = filtered.UserID
关于sql-server-2005 - 用于用户定义的键/值对的连接表上的 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647570/
我是一名优秀的程序员,十分优秀!