Matrix 如何使用SSRS矩阵报告中的行组获取作为行选择的所有参数?
我需要获取在参数(多值参数)中选择的所有值(假设辖区)。我的存储过程只返回几个辖区,因为表中只有这些数据。但我需要显示选择为输入参数的其他辖区,对应值为Null或0。Matrix 如何使用SSRS矩阵报告中的行组获取作为行选择的所有参数?,matrix,reporting-services,report,Matrix,Reporting Services,Report,我需要获取在参数(多值参数)中选择的所有值(假设辖区)。我的存储过程只返回几个辖区,因为表中只有这些数据。但我需要显示选择为输入参数的其他辖区,对应值为Null或0。 例如,如果我为报表数据集选择了NJ、VA、IA、NY,并且我的SP正在从表中获取NJ、VA、IA的值,我需要用表值表示这些值,用空格或0表示NY 现在我越来越紧张了 Jurisdiction Value
例如,如果我为报表数据集选择了NJ、VA、IA、NY,并且我的SP正在从表中获取NJ、VA、IA的值,我需要用表值表示这些值,用空格或0表示NY 现在我越来越紧张了
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)
这只提供具有值的结果。如果我们将外部连接保留在辖区表中,那么我们可以为所选的所有参数值返回一些内容,即使该值将为null
SELECT J.Jurisdiction, JV.Value
FROM Jurisdictions J
LEFT OUTER JOIN JurisdictionValues JV ON J.Jurisdiction = JV.Jurisdiction
AND J.Jurisdiction IN (@Jurisdictions)
另一种方法是直接在SSR中进行查找。您将有两个数据集,一个是辖区,另一个是辖区值。该报告的表格基于辖区,并具有以下SQL:
SELECT Jurisdiction
FROM Jurisdictions
WHERE Jurisdiction IN (@Jurisdictions)
JudictionValues表从存储过程返回辖区和值。在值的表格单元格中,输入以下公式:
=Lookup(Fields!Jurisdiction.Value, Fields!Jurisdiction.Value, Fields!Value.Value, "JurisdictionValues")
查找将查找辖区的相应值并返回值字段 这听起来像是存储过程的问题。也许存储过程正在进行内部联接,这样就消除了没有相关数据的辖区?您能否将其更改为左联接,以便无论相关表中是否有数据,都会返回辖区?您好,感谢您的回复。我试着使用正确的连接,并能够得到它。但我想知道除了对程序进行更改之外,我在报告级别是否还有其他选择。如果这是唯一的选项,那么我将使用它。您可以修改数据源中的SQL查询,以便正确连接到过程的结果。或者你可以加入你的tablix,但这会变得非常复杂,很难维护。