简单的where子句SSRS 2005参数不起作用

时间:2013-11-01 17:30:49

标签: select reporting-services

这应该是一件简单的事情,但我花了几个小时无济于事。基本上,我需要使用用户的Window的用户ID在SQL数据库中查找salesrep#。用户标识的格式是 “Norstar \ kjones”,我需要它的“kjones”部分。

使用split函数,我只能将'kjones'部分拉出来:

split(User!UserID,"\").GetValue(1)

我创建了一个名为SlsmnNum的参数,并创建了一个数据集,用于使用用户ID查找salesrep#(slsm_num字段是varchar,而不是整数):

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

然而,我没有结果。如何让选择工作?

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

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

select slsm_num from Salesman_Msid where slsm_msid = (@SlsmnNum)

当我在数据选项卡上运行查询时,当我在参数框中输入'kjones'时,它返回'1366',即我期待的salesrep#。

但是,当我预览报告时,SlsmnNum2框中的所有内容都是Select a Value,并且没有任何内容(它应该返回'1366')。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试使用查询文字作为

的第一种方法
="select slsm_num from Salesman_Msid where slsm_msid = '" & split(User!UserID,"\").GetValue(1) & "'"

enter image description here