运行 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" 关键字,它确保表达式在上下文中被评估。
我想从我在 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" 关键字,它确保表达式在上下文中被评估。