5

我有一个 Sql Server 报告服务项目。我有一个名为 Total 的数据集查询,我在其中根据参数选择某些数据:

select ...
  from ...
group by ...

having prop_id = @PropID

现在要填充此参数的多个值的列表,我有一个名为 AllProps 的数据集查询,它选择所有可能的 prop_id:

select prop_id from proposal
order by prop_id

现在在报告数据窗格中,我从@PropID 中选择参数属性并填写如下表格:

Under General I have,
   Name: PropID
   Data type: Text
   (I select "Allow multiple values")

Under Available values I have,
   Get values from a query
   Dataset: AllProps
   Value Fields: prop_id
   label field:  prop_id

Under Default Values I have,
   Get values from a query
   Dataset: AllProps
   Valuefield: prop_id

当我单击预览选项卡查看我的报告时,我收到以下错误:

本地报告处理过程中发生错误。报告处理过程中发生错误。数据集“总计”的查询执行失败。

必须声明标量变量“@PropID”。

我哪里做错了?什么是 SSRS 中的标量变量以及如何正确使用它?

谢谢

4

2 回答 2

5

您编写的查询需要更正。由于您选择了多个值,因此您需要使用in子句。

Select col1,col2....
from TableName 
where prop_id in  (@PropID)
于 2012-06-27T16:24:34.843 回答
2

在存储过程中,您可以直接传递参数并使用存储过程中的函数拆分值。

如果参数直接传递给 sql 查询而不是存储过程,则使用连接连接参数值并传递给数据集在此处输入图像描述

于 2017-04-25T15:55:15.823 回答