BW层次结构-聚合和Inputcontrol过滤器

2020-09-11 00:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 专家们, 我已经开...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我已经开发了一个WEBI报告,其后端数据源是BEX查询。 该查询的层次结构为" H1",量度为" m1"。 我需要为每个层次结构级别总计计算" m1"。 为了避免随着每个层次级别的扩展使m1加倍,我对m1总数使用了以下公式

=总和(if([H1] .Depth = 0; [m1]; 0))

我使用了以下链接中的公式

https://archive.sap.com/discussions/thread/3331847

我也尝试过使用soln。 通过以下链接。

https://archive.sap.com/discussions/thread/3359253

没有运气…..:(

从第一个链接开始的此公式可以完美地计算每个层次结构级别的m1总数,而无需通过层次结构级别扩展BUT将聚合加倍

当我在Webi报表上将H1用作输入控件过滤器时,会出现公式问题。 当选择m1总数时,仅对于所有子节点的顶级层次结构节点而言,总的来说才是正确的,因为我使用了条件" if([H1] .Depth = 0; [m1]; 0)",所以m1总数对所有子节点都是正确的。

我尝试了公式的不同变体,例如,在else条件中,而不是0,我给条件" if([H1] .Depth = 1; [m1]; if([H1] .Depth = 2; [m1]; 0))"。 我有3个等级的层次结构。 所以我的公式变成

Sum(if([H1] .Depth = 0; [m1]; if([H1] .Depth = 1; [m1]; if([H1] .Depth = 2; [m1]; 0)) ))

此变体在任何层次结构级别上都不会产生0的总和,但深度1的总和(m1总计)是两倍,深度2则是三倍。

我可以理解,对于级别1,它包括深度0和深度1的总和,与深度2相同,这为深度0,深度1和深度2加了。

因此,为了避免这种情况,我在各个级别分别使用了sum,但这会导致" MultiValue错误"。

请提出一个适用于聚合和输入控制的公式,该公式可过滤子节点而不产生总计0的

任何帮助将不胜感激。

谢谢!!!!!

2条回答
SAP浪
2020-09-11 01:46

嗨,汤姆,

感谢您的支持。 我申请了你的Soln。 它有效!!

但是对于其他人,我也要提到我的问题。 我申请了

我没有使用深度进行层次结构,而是使用了简单的webi上下文运算符ForEach

总和([Measure] ForEach(表和本节中的所有尺寸列)。

再次感谢您的支持。

一周热门 更多>