Select 简单where子句SSRS 2005参数不工作

Select 简单where子句SSRS 2005参数不工作,select,reporting-services,Select,Reporting Services,这应该是一件简单的事情,但我花了几个小时都没有用。基本上,我需要使用用户窗口的用户id在SQL数据库中查找salesrep “Norstar\kjones”,我需要其中的“kjones”部分 使用split函数,我可以只提取“kjones”部分: split(User!UserID,"\").GetValue(1) 我创建了一个名为SlsmnNum的参数,并创建了一个数据集,用于使用用户id查找salesrep(slsm#num字段是varchar,而不是整数): 然而,我没有得到任何结果。我

这应该是一件简单的事情,但我花了几个小时都没有用。基本上,我需要使用用户窗口的用户id在SQL数据库中查找salesrep “Norstar\kjones”,我需要其中的“kjones”部分

使用split函数,我可以只提取“kjones”部分:

split(User!UserID,"\").GetValue(1)
我创建了一个名为SlsmnNum的参数,并创建了一个数据集,用于使用用户id查找salesrep(slsm#num字段是varchar,而不是整数):

然而,我没有得到任何结果。我怎样才能让select开始工作

或者,我尝试了以下方法: 在参数SlsmnNum中,我使用以下命令将默认值设置为表达式:
split(User!UserID,“\”).GetValue(1)
并按预期返回“kjones”

我使用查询创建了第二个参数(位于
SlsmnNum
参数下方),
SlsmnNum2
,该参数具有默认值(和可用值),该查询是包含以下select语句的数据集:

select slsm_num from Salesman_Msid where slsm_msid = (@SlsmnNum)
当我在数据选项卡上运行查询时,当我在参数框中输入'kjones'时,它返回'1366',我期待的销售代表

但是,当我预览报告时,我在
SlsmnNum2
框中得到的只是
选择一个值
,没有任何内容(它应该返回“1366”)


任何帮助都将不胜感激

尝试您的第一种方法,将查询文本作为

="select slsm_num from Salesman_Msid where slsm_msid = '" & split(User!UserID,"\").GetValue(1) & "'"

Hi Anup,我试过这个(我想你的意思是“where slsm_msid=“””+split(User!UserID,“\”).GetValue(1)+“””“““”””——第一个“需要像最后一个一样使用双qoutes,对吗?”)但是我得到了错误“附近的语法不正确!”。不,我的意思是代码中显示的,包括“=”。这更像是一个动态查询。噢--那么这应该放在SlsmnNum参数的表达式字段中吗?我不知道select语句应该放在哪里--如果我将它作为查询放在数据集中,引号和=是不正确的。如果我将它放在SlsmnNum参数的表达式框中,整行就会显示在预览屏幕上的框。你的代码应该放在哪里?谢谢!添加了截图和更新的代码。我的错,我们需要使用¬+。
="select slsm_num from Salesman_Msid where slsm_msid = '" & split(User!UserID,"\").GetValue(1) & "'"