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
Matrix 如何使用SSRS矩阵报告中的行组获取作为行选择的所有参数?_Matrix_Reporting Services_Report - Fatal编程技术网

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

Matrix 如何使用SSRS矩阵报告中的行组获取作为行选择的所有参数?,matrix,reporting-services,report,Matrix,Reporting Services,Report,我需要获取在参数(多值参数)中选择的所有值(假设辖区)。我的存储过程只返回几个辖区,因为表中只有这些数据。但我需要显示选择为输入参数的其他辖区,对应值为Null或0。 例如,如果我为报表数据集选择了NJ、VA、IA、NY,并且我的SP正在从表中获取NJ、VA、IA的值,我需要用表值表示这些值,用空格或0表示NY 现在我越来越紧张了 Jurisdiction Value

我需要获取在参数(多值参数)中选择的所有值(假设辖区)。我的存储过程只返回几个辖区,因为表中只有这些数据。但我需要显示选择为输入参数的其他辖区,对应值为Null或0。
例如,如果我为报表数据集选择了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,但这会变得非常复杂,很难维护。