【发布时间】:2013-02-04 22:53:44
【问题描述】:
我正在开发一份报告,该报告应根据用户指定的参数返回结果。有 3 个报告参数,一个是带有“Locations”的下拉列表,另外两个是要在“user_id”和用户的名字或姓氏中搜索的文本参数。这是我目前使用的:
SELECT *
FROM UserTable1
WHERE Location = @Location
AND (user_id LIKE '%'+@SearchUserID+'%'
AND first_name LIKE '%'+@SearchUserName+'%'
OR last_name LIKE '%'+@SearchUserName+'%')
如果用户将@SearchUserID 参数字段留空,则应返回所有user_ids(满足其他2 个参数)。如果指定,它将返回在 user_id 中具有该子字符串的 user_ids。 @SearchUserName 参数字段也是如此。如果留空,它应该返回满足其他参数的所有用户。如果指定,它应该返回在 first_name 或 last_name 中包含该子字符串的所有用户(但仅返回满足其他参数的结果)。如果两者都留空,则应返回所有用户。
我上面的查询不起作用。它似乎只返回满足 @SearchUserName 参数的结果,但忽略了 @SearchUserID 参数。有没有办法来解决这个问题?我使用以下表达式将 @SearchUserID 过滤器放在 tablix 本身上: ="" & 参数!SearchUserID.Value & "" 但这导致性能严重受阻..
【问题讨论】:
标签: tsql parameters ssrs-2008 reporting-services