运行 MDX 中带有过滤器的总计?

Running Totals with Filters in MDX?

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

就像我分享的图片一样,我想要 运行-SUM 列的总数从我在过滤器中选择的日期开始。

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

谢谢!

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

看例子

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 年之前年份的值。这一切都是因为使用了 "existing" 关键字,它确保表达式在上下文中被评估。