在SSRS报告中实现if / else逻辑

时间:2017-04-12 17:01:09

标签: sql-server tsql if-statement reporting-services

我正在创建一个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中发生,因此默认情况下会显示[来自第一个结果集]的数据集。

话虽如此,我如何在报告中实现这种逻辑?

1 个答案:

答案 0 :(得分:2)

您将要在报告中添加参数。在左上角的左侧是参数文件夹。您可以右键单击添加参数。

您的参数就像@variable一样传递给您的查询。用@yourparametername替换@variable。在查询设计器中执行查询时,将弹出一个对话框,允许您输入参数以便查询可以执行。这将允许SSRS读取列并在数据集中显示它们。