我需要能够根据登录人员提取报告。例如,在一组销售人员中,如果鲍勃进入此报告并单击“销售人员”下拉列表,我需要他只能将鲍勃视为可用的销售人员,而不是其他任何人。我通过使用解决了这个问题=User!UserID
SSRS 中的函数并且运行良好。
我现在遇到的问题是为该功能提供一个 CASE 语句,以允许经理能够进入并查看鲍勃以及其他所有人的“管理员”视图。我当前的查询如下所示,并且按预期仅从“销售人员”下拉列表中选择该用户的姓名:
select SalesPerson_Name
from Salesperson
where salesperson_id = SUBSTRING(@user,14,20)
这是我尝试用来覆盖并提供管理员级别的“全部”类型视图的内容:
select Salesperson_name
from Salesperson
where case
when @user in ('DOMAIN\Brandyj','DOMAIN\jwilson') then 1=1
else SalesPerson_id = SUBSTRING(@user,14,20)
end
它不喜欢我正在尝试做的事情并给了我一个
“=”附近的语法不正确。
也许我已经看这个太久了。有人能发现一些明显的东西吗?
你已经很接近了……只是一个小小的改变。你需要CASE
表达根据 SalesPerson_id 列的操作数进行评估。CASE
当您尝试使用它时,它不提供逻辑流程。请记住,它评估一组布尔表达式来确定结果(必须是单一数据类型)。
我也选择了OR
但你仍然可以使用IN
如果你愿意的话。
select Salesperson_name
from Salesperson
where
SalesPerson_id =
case
when @user = 'DOMAIN\Brandyj' or @user = 'DOMAIN\jwilson' then SalesPerson_id
else SUBSTRING(@user,14,20)
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)