我正在创建一个SSRS报告(我很擅长),我的查询是使用SQL Server 2008在t-sql中编写的。
查询是一个基本上读取的IF EXISTS / ELSE语句 -
--Declare @variable varchar(10) = 'value'
IF EXISTS (SELECT col1
FROM t1
WHERE t1.col1 = @variable
)
SELECT col1
FROM t1
WHERE t1.col1 = @variable
ELSE
SELECT col1, col2
FROM t2
WHERE t2.col1 = @variable
这在Mgmt studio中运行良好,但是当我尝试在SSRS中创建一个Tablix时,t2中的列被排除在数据集之外 - 这是有道理的,因为必须运行整个查询来确定返回哪个结果集,并且在最终用户为@variable分配值之前不会在ssrs中发生,因此默认情况下会显示[来自第一个结果集]的数据集。
话虽如此,我如何在报告中实现这种逻辑?
答案 0 :(得分:2)
您将要在报告中添加参数。在左上角的左侧是参数文件夹。您可以右键单击添加参数。
您的参数就像@variable一样传递给您的查询。用@yourparametername替换@variable。在查询设计器中执行查询时,将弹出一个对话框,允许您输入参数以便查询可以执行。这将允许SSRS读取列并在数据集中显示它们。