我已经构建了一个 SSRS 报告,该报告应该查看来自具有相似名称的几个表之一的数据 - 即 table001、table010、table011 等。当我构建报告时,我只包括三个表,out十几个。一切正常,直到我将所有其余表添加到查询中,同时使用多个 SELECT 语句 UNIONed;它试图对如此多的数据进行分类,以至于需要将近半个小时来呈现报告。那是行不通的。
有没有办法将 SSRS 参数传递给 SQL 查询,指定要访问的表?
我已经构建了一个 SSRS 报告,该报告应该查看来自具有相似名称的几个表之一的数据 - 即 table001、table010、table011 等。当我构建报告时,我只包括三个表,out十几个。一切正常,直到我将所有其余表添加到查询中,同时使用多个 SELECT 语句 UNIONed;它试图对如此多的数据进行分类,以至于需要将近半个小时来呈现报告。那是行不通的。
有没有办法将 SSRS 参数传递给 SQL 查询,指定要访问的表?
您是否遵循 MSDN 教程?这也很好:http ://sql-bi-dev.blogspot.com/2010/07/report-parameters-in-ssrs-2008.html
请分享您尝试过的方法以及遇到问题的地方。本质上,您在报告中定义一个参数并将其包含在您的查询中。SSRS 提供参数值(或通过用户输入接收),然后将最终查询传递给数据库。
Based on your comments, you could do the following
DECLARE @Parameter NVARCHAR(15) = 'Foo'
SELECT CASE
WHEN @Parameter IN ('Foo', 'Bar')
THEN (
SELECT *
FROM table001
)
WHEN @Parameter IN ('Foobar')
THEN (
SELECT *
FROM table002
)
ELSE
(
SELECT *
FROM table003
)
END
Alternately
SELECT CASE @Parameter
WHEN 'Foo'
THEN (
SELECT *
FROM table001
)
WHEN 'Bar'
THEN (
SELECT *
FROM table002
)
WHEN 'Foobar'
THEN (
SELECT *
FROM table003
)
ELSE
(
SELECT *
FROM @table004
)
END