Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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_Sql Server 2008_Reporting Services_Ssrs 2008 - Fatal编程技术网

Sql server SSRS多值参数-实施过滤器的适当层

Sql server SSRS多值参数-实施过滤器的适当层,sql-server,sql-server-2008,reporting-services,ssrs-2008,Sql Server,Sql Server 2008,Reporting Services,Ssrs 2008,在sql reporting services中使用多值参数时,是否更适合在数据集本身、数据区域控制或更改驱动数据集的实际查询上使用筛选器实现列表筛选器 SSR将支持任何场景,因此我要问,除了显而易见的原因之外,还有什么原因可以在一个层次上完成这项工作而不是在另一个层次上完成 对我来说,修改查询本身并要求RDBMS处理过滤将是最有效的,这是有道理的,但也许我在SSRS数据处理扩展如何处理这种情况方面遗漏了一些东西?你是正确的。方法是将参数传递给数据库引擎 Reporting Services在理

在sql reporting services中使用多值参数时,是否更适合在数据集本身、数据区域控制或更改驱动数据集的实际查询上使用筛选器实现列表筛选器

SSR将支持任何场景,因此我要问,除了显而易见的原因之外,还有什么原因可以在一个层次上完成这项工作而不是在另一个层次上完成


对我来说,修改查询本身并要求RDBMS处理过滤将是最有效的,这是有道理的,但也许我在SSRS数据处理扩展如何处理这种情况方面遗漏了一些东西?

你是正确的。方法是将参数传递给数据库引擎

Reporting Services在理想情况下只能用于呈现内容。需要传回客户端web浏览器的数据越少,报表呈现的速度就越快

您可能会发现我在一篇类似的帖子中给出了关于使用mulit值参数的答案

希望这有帮助,但请随时提出任何进一步的问题,你可能有

干杯,
John

使用表值UDF是一种很好的方法,但仍然存在一个问题-如果在许多查询位置调用此函数,甚至在内部select中调用,可能会出现性能问题。您可以使用表变量(或临时表eather)解决此问题:

所以函数只调用一次

另外,如果您不使用存储过程,而是使用嵌入式SQL查询,则可以将MVP放入查询中: ... 其中someColumn位于(@Param) ...
使用RDBMS进行主筛选

SSRS为数据驱动显示和/或动态显示提供过滤功能。特别适用于子报告等

DECLARE @Param (Value INT)
INSERT INTO @Param (Value) 
SELECT Param FROM dbo.fn_MVParam(@sParameterString,',')
...
where someColumn IN(SELECT Value FROM @Param)