Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/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在一个报告中对多个条件进行SSRS_Sql_Reporting Services_Ssrs Tablix_Sql Parametrized Query - Fatal编程技术网

SQL在一个报告中对多个条件进行SSRS

SQL在一个报告中对多个条件进行SSRS,sql,reporting-services,ssrs-tablix,sql-parametrized-query,Sql,Reporting Services,Ssrs Tablix,Sql Parametrized Query,我正在创建一个带有几个条件的表格报告。作为一个恰当的例子,条件可以是以下任一情况: X为空 X不是空的 类似于“%Y%”的X 我想创建一种钻取报告,能够选择上述条件之一 现在我创建了三个表,并使用IIF来显示每个表。我将参数添加到可见性中,通过选择一个条件,相关表变为可见,而其他两个变为隐藏。 但是我考虑的只是一个带有参数的表,用于选择所需的条件。与其使用可见性表达式,不如将其添加为过滤器。这将仅显示与表达式匹配的行。您可以这样做: WHERE CASE WHEN @ReportType = 1

我正在创建一个带有几个条件的表格报告。作为一个恰当的例子,条件可以是以下任一情况:

X为空

X不是空的

类似于“%Y%”的X

我想创建一种钻取报告,能够选择上述条件之一

现在我创建了三个表,并使用IIF来显示每个表。我将参数添加到可见性中,通过选择一个条件,相关表变为可见,而其他两个变为隐藏。

但是我考虑的只是一个带有参数的表,用于选择所需的条件。

与其使用可见性表达式,不如将其添加为过滤器。这将仅显示与表达式匹配的行。您可以这样做:

WHERE CASE WHEN @ReportType = 1 AND x IS NULL THEN 'Y'
           WHEN @ReportType = 2 AND x IS NOT NULL THEN 'Y'
           WHEN @ReportType = 3 AND x LIKE '%y%' THEN 'Y'
           ELSE 'N' END = 'Y'
表达式:=“TRUE”

接线员:=

值:IIF(参数!Status.Label=“NULL”、“TRUE”、“FALSE”)


只需在查询中添加一个case语句,并使用一个参数为不同的报告类型返回一个数字。大概是这样的:

WHERE CASE WHEN @ReportType = 1 AND x IS NULL THEN 'Y'
           WHEN @ReportType = 2 AND x IS NOT NULL THEN 'Y'
           WHEN @ReportType = 3 AND x LIKE '%y%' THEN 'Y'
           ELSE 'N' END = 'Y'

将param值发送到SQL并添加WHERE子句。这是最简单的方法。