我需要获取在参数(多值参数)中选择的所有值(假设管辖权)。由于表格仅包含该数据,因此我的存储过程仅返回少数管辖区域。但我需要显示其他管辖区域被选为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矩阵报告中的行组。
答案 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字段。