Sql server SSRS滤波器参数
我在ssrs报告中有“国家”过滤器下拉列表。它包含所有国家/地区,是一个多选下拉列表。如果用户选择“全部”,则报告会将所有国家/地区名称(以逗号分隔)发送到StoredProcess,我可以在其中查询以显示数据。在存储过程中,我分割值并比较数据。目前没有问题。现在我想要的是,如果用户选择“All”,我不需要将所有逗号分隔的值传递给SP,而是传递null。因此,在我的sp中,我不必拆分或加入表。问题在于确定用户是否已在报告条件中选中“全部”复选框。是否有方法在选择“全部”时查找此问题 国家是动态的,所以我没有一个查找值来统计所有国家。Sql server SSRS滤波器参数,sql-server,ssrs-2008,reporting,reporting-services,Sql Server,Ssrs 2008,Reporting,Reporting Services,我在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包含聚合或查找函数。无法在查询参数中使用聚合和查找函数。这里的重点是调整性能。正如您所说,我可以从数据库中获取国家统计数据,但对于少量数据来说,这是可以的。但是我可能有一些其他的数据集,它们会有更多的行。请问还有别的方法吗?