Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSRS滤波器参数_Sql Server_Ssrs 2008_Reporting_Reporting Services - Fatal编程技术网

Sql server SSRS滤波器参数

Sql server SSRS滤波器参数,sql-server,ssrs-2008,reporting,reporting-services,Sql Server,Ssrs 2008,Reporting,Reporting Services,我在ssrs报告中有“国家”过滤器下拉列表。它包含所有国家/地区,是一个多选下拉列表。如果用户选择“全部”,则报告会将所有国家/地区名称(以逗号分隔)发送到StoredProcess,我可以在其中查询以显示数据。在存储过程中,我分割值并比较数据。目前没有问题。现在我想要的是,如果用户选择“All”,我不需要将所有逗号分隔的值传递给SP,而是传递null。因此,在我的sp中,我不必拆分或加入表。问题在于确定用户是否已在报告条件中选中“全部”复选框。是否有方法在选择“全部”时查找此问题 国家是动态的

我在ssrs报告中有“国家”过滤器下拉列表。它包含所有国家/地区,是一个多选下拉列表。如果用户选择“全部”,则报告会将所有国家/地区名称(以逗号分隔)发送到StoredProcess,我可以在其中查询以显示数据。在存储过程中,我分割值并比较数据。目前没有问题。现在我想要的是,如果用户选择“All”,我不需要将所有逗号分隔的值传递给SP,而是传递null。因此,在我的sp中,我不必拆分或加入表。问题在于确定用户是否已在报告条件中选中“全部”复选框。是否有方法在选择“全部”时查找此问题

国家是动态的,所以我没有一个查找值来统计所有国家。
参数!Count==10——我不能这样做,因为我不知道10。

您可以创建一个单独的数据集,在其中计算国家的数量

Select count(countryName) as cntCountry from yourTable
现在您可以将此字段与参数进行比较!国家,伯爵

Fields!cntCountry.Value==Parameters!Country.Count 
或者,您也可以使用传递数据集的函数

Parameters!Country.Count=CountRows(dataset1)
编辑:如果上面的一个不起作用

   Parameters!Country.Count=CountRows()

为什么不在数据集中创建一个字段来存储行数。创建数据集时,只需在sql查询中获取行数,然后将该值与
参数匹配!Country.Count

谢谢Praveen,意外CountRows(数据集1)不起作用:错误消息是:@Country包含聚合或查找函数。无法在查询参数中使用聚合和查找函数。这里的重点是调整性能。正如您所说,我可以从数据库中获取国家统计数据,但对于少量数据来说,这是可以的。但是我可能有一些其他的数据集,它们会有更多的行。请问还有别的方法吗?