【问题标题】:Running Totals with Filters in MDX?在 MDX 中使用过滤器运行总计?
【发布时间】:2019-06-20 08:23:04
【问题描述】:

我想从我在 Power BI 的筛选器中选择的日期开始运行总计,因为我尝试过的所有函数 MDX 都从第一个值开始运行总计。

就像我分享的图片一样,我希望 SUM 列的总和从我在过滤器中选择的日期开始。

Power BI 中的我的仪表板已连接到 OLAP Cube SSAS(数据源)。

谢谢!

【问题讨论】:

  • 你确定是 MDX 吗?我一直认为 Power BI 使用 DAX。
  • 对不起,我忘了具体说明,我的仪表板有一个 OLAP Cube SSAS 作为数据源。

标签: powerbi ssas mdx measure cumulative-sum


【解决方案1】:

这样做的原因是,在您的运行总计中,您在没有上下文的情况下对值求和。

看例子

with 
member 
[Measures].[Internet Sales AmountRunningtotal]
as 
case when [Measures].[Internet Sales Amount] = null then null 
else 
sum( {[Date].[Calendar Year].firstchild:[Date].[Calendar Year].currentmember},[Measures].[Internet Sales Amount])
end

select {[Measures].[Internet Sales Amount],
[Measures].[Internet Sales AmountRunningtotal]
} on columns,

non empty
([Date].[Calendar Year].[Calendar Year])
on 
rows 
from 
[Adventure Works]

结果

现在让我们做一些改变

with 
member 
[Measures].[Internet Sales AmountRunningtotal]
as 
case when [Measures].[Internet Sales Amount] = null then null 
else 
sum(existing {[Date].[Calendar Year].firstchild:[Date].[Calendar Year].currentmember},[Measures].[Internet Sales Amount])  
end 

select {[Measures].[Internet Sales Amount],
[Measures].[Internet Sales AmountRunningtotal]
} on columns,

non empty
([Date].[Calendar Year].[Calendar Year])
on 
rows 
from 
(select[Date].[Calendar Year].&[2012]:[Date].[Calendar Year].&[2013] on 0 from [Adventure Works] )

结果

请注意,在第二个结果中,2012 年之前的年份的值不包括在内。这一切都是因为使用“现有”关键字确保表达式在上下文中进行评估。

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多