查找SSRS中的2个数据集

时间:2018-02-15 12:53:14

标签: reporting-services

我在ssrs报告中使用Lookup时遇到问题。该报告包含3个我没有机会编辑或合并的数据集(三个不同的立方体)

这是一份销售报告,应按销售经理分组,并显示销售潜力和折扣潜力"销售。我面临的问题是我必须在DataSet1上循环我的表,因为它是唯一拥有Sales Mangers的表。

使用LookupSet和LookupSum很容易从DataSet2获得潜力。类似的东西:

= Code.LookupSum(LookupSet(Fields!Country.Value,Fields!Country.Value,Fields!Potential.Value," DataSet2"))

当我尝试计算折扣电位表格DataSet3

时出现问题

因为我需要根据DataSet1中没有的值执行查找!这有可能吗?

数据集和所需报告如下所示

1 个答案:

答案 0 :(得分:1)

您应该能够将Tablix的数据集更改为DataSet2以获得所需的结果。 Dataset2是唯一直接与其他两个数据集相关的数据集,并且由于不允许嵌套Lookups,并且由于您无法修改数据集,因此这对于这种情况是必要的。

我不确定您使用什么计算来结束“折扣”列,我无法弄清楚任何适用于所有示例数据的公式。对于我的测试,我只是拿了Sum确保它正常工作,但你应该能够修改它以满足你的需求。

我设置了一个像这样的Tablix:

+---------------------------------------------------+
| Manager |  Country  |    Potential     | Discount |
| <Expr1> | [Country] | [Sum(Potential)] | <Expr2>  |
+---------------------------------------------------+

使用2个行组,第一个分组在Expr1上,子组分组在Country上,其中Expr1为=Lookup(Fields!Country.Value, Fields!Country.Value, Fields!Manager.Value, "DataSet1"),Expr2为=Sum(Code.SumLookup(LookupSet(Fields!Customer.Value, Fields!Customer.Value, Fields!Discount.Value, "DataSet3")))。我按国家/地区对父行组进行了排序,以使排序与屏幕截图中的排序相同。但是,您可能需要修改Expr2以满足您的需求。如果折扣是该特定客户的百分比,那么以下代码应该适用于此,但结果与您的屏幕截图不符,所以我不确定这是否是您要找的:

=Sum(Fields!Potential.Value - (Fields!Potential.Value * Code.SumLookup(LookupSet(Fields!Customer.Value, Fields!Customer.Value, Fields!Discount.Value, "DataSet3")) / 100))

enter image description here

enter image description here

如果折扣是百分比,则使用修改后的Expr2的结果:

enter image description here