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

时间:2015-06-01 18:42:28

标签: matrix reporting-services report

我需要获取在参数(多值参数)中选择的所有值(假设管辖权)。由于表格仅包含该数据,因此我的存储过程仅返回少数管辖区域。但我需要显示其他管辖区域被选为Null或0作为输入参数的相应值 就像我选择NJ,VA,IA,NY和我的报告数据集的SP从表中获得NJ,VA,IA的值我需要用表值和带空格的NY或0表示。

现在我要

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

但我需要得到

{{1}}

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

1 个答案:

答案 0 :(得分:0)

这里有两种方法。

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

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

这只会为您提供具有值的结果。如果我们在Jurisdictions表中保留外连接,那么我们可以返回所选参数值的内容,即使该值为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。该报告的表格基于Jurisdictions,并具有以下SQL:

SELECT Jurisdiction
FROM Jurisdictions
WHERE Jurisdiction IN (@Jurisdictions)

JurisdictionValues表返回存储过程中的管辖区和值。在值的表格单元格中,输入以下公式:

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

Lookup找到Jurisdiction的相应值并返回Value字段。