这应该是一件简单的事情,但我花了几个小时无济于事。基本上,我需要使用用户的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')。
非常感谢任何帮助!
答案 0 :(得分:0)
尝试使用查询文字作为
的第一种方法="select slsm_num from Salesman_Msid where slsm_msid = '" & split(User!UserID,"\").GetValue(1) & "'"