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



我正在创建SSRS报告(我相当新(,我的查询是使用SQL Server 2008用t-sql编写的。

该查询是一个 If Exist/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 工作室中运行良好,但是当我尝试在 SSRS 中创建 tablix 时,来自 t2 的列被排除在数据集之外 - 这是有道理的,因为必须运行整个查询以确定返回哪个结果集,并且在最终用户将值分配给 @variable 之前,这在 ssrs 中不会发生, 因此,默认情况下显示数据集 [来自第一个结果集]。

话虽如此,如何在报表中实现这种类型的逻辑?

您需要向报表添加参数。左上角的左侧栏中是参数文件夹。您可以右键单击该参数并添加参数。

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

最新更新