SSAS 多维数据集计算的成员无穷大总计值
Posted
技术标签:
【中文标题】SSAS 多维数据集计算的成员无穷大总计值【英文标题】:SSAS Cube Calculated Member infinity Totals value 【发布时间】:2021-03-03 19:19:24 【问题描述】:我正在使用实时连接 SSAS 多维数据集开发 Power BI。我有两个维度表,客户和年份以及一个事实表。我想生成一个报告,显示每年按公民身份划分的销售额比例。我在 SSAS Cube 上使用了这个 MDX 表达式来创建一个新的计算成员。
(([Year].[Year].currentmember,[Dim Customer].[Cittzenship].currentmember),[Measures].[Totale Sales]) /([Cittzenship].currentmember.parent,[Measures].[Totale Sales])
查询结果按预期工作,但在 Power BI 报告表上,总值为无穷大。 Result
我一直在解决这个问题。如果有人指导我如何解决这个问题,我会很高兴。
【问题讨论】:
【参考方案1】:原因可能是对于总计,父级不存在,因此其值被替换为 null 进行计算。在大多数情况下,SSAS 将 null 替换为 0,因此除以 0,这在数学上是无穷大。您可以做的是使用Divide
函数而不是/
,这正是为此目的,因为它提供与/
相同的结果,除非除数为零,在这种情况下它提供null。
顺便说一句:Divide
是在 SSAS 2012 中引入的,因此如果您至少不在该版本上,则必须使用像 IIf(divisor <> 0, dividend / divisor, null)
这样的构造,这正是 Divide(dividend, divisor)
的定义方式。就像我说的
上面,在MDX中对比SQL,比较0也隐式比较null。
【讨论】:
谢谢@FrankPL。我使用 IIF 函数来避免被零除。以上是关于SSAS 多维数据集计算的成员无穷大总计值的主要内容,如果未能解决你的问题,请参考以下文章