我在ssrs报告中使用Lookup时遇到问题。该报告包含3个我没有机会编辑或合并的数据集(三个不同的立方体)
这是一份销售报告,应按销售经理分组,并显示销售潜力和折扣潜力"销售。我面临的问题是我必须在DataSet1上循环我的表,因为它是唯一拥有Sales Mangers的表。
使用LookupSet和LookupSum很容易从DataSet2获得潜力。类似的东西:
= Code.LookupSum(LookupSet(Fields!Country.Value,Fields!Country.Value,Fields!Potential.Value," DataSet2"))
当我尝试计算折扣电位表格DataSet3
时出现问题因为我需要根据DataSet1中没有的值执行查找!这有可能吗?
数据集和所需报告如下所示
答案 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))
如果折扣是百分比,则使用修改后的Expr2的结果: