如何使用SSRS矩阵报告中的行组获取所有被选为行的参数?

How to get all the parameters that are selected as a rows using row groups in SSRS matrix report?

我需要获取在参数(多值参数)中选择的所有值(假设管辖权)。我的存储过程仅返回少数管辖区,因为 table 仅具有该数据。但是我需要显示其他被选为输入参数的司法管辖区,相应的值为 Null 或 0。
就像我选择了 NJ、VA、IA、NY 并且我的报告数据集的 SP 正在从 table 中获取 NJ、VA、IA 的值,我需要用 table 值来表示这些值,而 NY 用空格来表示或 0.

现在我得到了

                                 Jurisdiction                Value
                                 NJ                           1
                                 VA                           23
                                 IA                           5

但我需要

                                Jurisdiction                Value
                                 NJ                           1
                                 VA                           23
                                 IA                           5
                                 NY                           0 or Null

管辖权用作 SSRS 矩阵报表中的行组。

这里有两种方法。

首先,如果您可以更改存储过程或为您的数据集编写自己的 SQL,那么您可以使用左外连接来实现。例如,您的 SQL 可能看起来像这样:

SELECT Jurisdiction, Value
FROM JurisdictionValues
WHERE Jurisdiction IN (@Jurisdictions)

这只会为您提供有价值的结果。如果我们离开 outer join 反对司法管辖区 table 那么我们可以 return 一些选择的所有参数值,即使该值将为 null。

SELECT J.Jurisdiction, JV.Value
FROM Jurisdictions J
LEFT OUTER JOIN JurisdictionValues JV ON J.Jurisdiction = JV.Jurisdiction 
  AND J.Jurisdiction IN (@Jurisdictions)

另一种方法是直接在 SSRS 中进行查找。您将有两个数据集,一个是 Jurisdictions,另一个是 JurisdictionValues。报告的 table 基于司法管辖区并具有以下 SQL:

SELECT Jurisdiction
FROM Jurisdictions
WHERE Jurisdiction IN (@Jurisdictions)

JurisdictionValues table return 来自您的存储过程的管辖区和值。在值的 table 单元格中,输入以下公式:

=Lookup(Fields!Jurisdiction.Value, Fields!Jurisdiction.Value, Fields!Value.Value, "JurisdictionValues")

Lookup 找到 Jurisdiction 和 returnValue 字段的对应值。