【问题标题】:SSAS Cube Calculated Member infinity Totals valueSSAS 多维数据集计算的成员无穷大总计值
【发布时间】: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

我一直在解决这个问题。如果有人指导我如何解决这个问题,我会很高兴。

【问题讨论】:

    标签: ssas mdx powerbi-desktop


    【解决方案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 函数来避免被零除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多