计算成员的总和错误
Posted
技术标签:
【中文标题】计算成员的总和错误【英文标题】:Total Sum of Calculated member is wrong 【发布时间】:2021-09-13 08:01:53 【问题描述】:我有桌子:
Artikal(英文项目) Grupa(英组) Potrosnja(英语消费)Potrosnja 是我的 Measure 表,Artikal 是 Dimension。 Grupa 还包含组之间的父子关系。目前,还只是一个层次。在我创建的 Artikal 维度内
层次结构:Grupa.ParentId、Grupa.GrupaId、Artikal.Id。层次结构的名称是 PGA。
这在 Power BI 中表现良好。我还创建了一些计算成员:Cijena LY 和 Vrijednost LY。
我需要创建一个计算成员并且公式是
(Cijena - Cijena LY)* 科利奇纳
首先,我尝试像计算成员一样创建,但我发现我的总数也在像公式总数的公式一样创建。我希望我对这个成员的总数是计算成员列的总和
我尝试使用 SCOPE 执行此操作,但没有得到正确的结果。这是我的脚本:
CREATE MEMBER CURRENTCUBE.[Measures].[Suma razlike] AS null,
VISIBLE = 1;
SCOPE([Measures].[Suma razlike],[Artikal].[PGA].members);
This =sum(
Descendants([Artikal].[PGA].CurrentMember,,LEAVES),
(([Measures].[Cijena]-[Measures].[Cijena LY])*[Measures].[Kolicina]));
END SCOPE;
谁能告诉我我做错了什么?我在 Microsoft 的分析服务中创建了它。
【问题讨论】:
【参考方案1】:Alexei Stoyanovsky 在不同的博客上提供了解决方案:
问题是创建了隐藏的子选择。我需要创建一组动态的 Artikal。这是解决方案:
CREATE DYNAMIC SET CURRENTCUBE.[MyTestSet] AS [Artikal].[Id].[Id].members;
SCOPE([Measures].[Suma razlike], [Artikal].[Id].members); --Includes All +
other members
This = case when [Artikal].[Id].currentmember.level.ordinal>0 then
([Measures].[Cijena]-[Measures].[Cijena LY])*[Measures].[Kolicina]
else
sum(existing [MyTestSet], ([Measures].[Cijena]-[Measures].[Cijena LY])*
[Measures].[Kolicina]) --All member is not included
end;
FORMAT_STRING([Measures].[Vrijednost - CPI])='Percent';
FORMAT_STRING([Measures].[Postotak razlike])='Percent';
FORMAT_STRING([Measures].[Razlika artikal - CPI])='Percent';
END SCOPE;
【讨论】:
以上是关于计算成员的总和错误的主要内容,如果未能解决你的问题,请参考以下文章
链接列表中的运行时错误:“ListNode”类型的空指针内的成员访问