我有一个运行存储的Proc的报告:

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID

ProjectID是一个多选择的下拉列表。 When a single project is selected, it works fine.如果我选择多个项目,我会得到错误:

"Must declare scalar variable "@ProjectID"

当我从“数据”选项卡运行时,它可以正常工作,但是,当我将其放入预览模式时,我有问题。

有帮助吗?

解决方案

我通过将查询作为表达式构建 - 在您的示例中得到了类似的工作

="EXEC ra_spProjectCalendar @Month = '" & Parameters!Month.Value & "',@Year='" & Parameters!Year.Value & "',@ProjectID = '" &  Join(Parameters!ProjectID.Value, ",") & "'"

目标SP中的某些代码将多选字符串分配到一个临时表中,该表在连接中用于创建输出。

我不记得为什么我们最终这样做了 - 这是在我们转移到SSRS的开始时,此后的事情已经有所发展 - 但这可能是您描述的问题。

其他提示

我发生了相同的错误:必须声明标量变量。

我现在意识到,要检查的第一件事是,当您以文本或存储为存储的proc类型输入查询时,SSRS会自动在数据集属性的“参数”选项卡中创建paramter条目。如果没有创建它们,则无法正确读取您的查询。

就我而言,我使用OpenQuery来调用分析服务立方体并引用包含许多方括号的现场名称。不幸的是,SSR喜欢重新格式化您的代码,以使得“ [测量]。

如果您在另一个工具中编辑该查询,则将其重新副本重新审查回SSR,则SSR将无法读取该语法!即使它生成它!因此,请删除所有额外的方括号,并替换双引号,并再次起作用,并生成您的参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top