SQL在一个报告中对多个条件进行SSRS
我正在创建一个带有几个条件的表格报告。作为一个恰当的例子,条件可以是以下任一情况: X为空 X不是空的 类似于“%Y%”的X 我想创建一种钻取报告,能够选择上述条件之一 现在我创建了三个表,并使用IIF来显示每个表。我将参数添加到可见性中,通过选择一个条件,相关表变为可见,而其他两个变为隐藏。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
但是我考虑的只是一个带有参数的表,用于选择所需的条件。与其使用可见性表达式,不如将其添加为过滤器。这将仅显示与表达式匹配的行。您可以这样做:
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子句。这是最简单的方法。