Ssas 如何在MDX中根据筛选的日期计算运行总计?
我需要有计算过的成员来计算Dim日期上的运行总数 这应该适用于在报告中过滤的所有日期。 大多数解决方案都是从Dim date中的第一个日期或Null计算到当前成员,但我需要从筛选到当前成员的第一个日期计算,并排除它们不在筛选中的日期 试试这个:Ssas 如何在MDX中根据筛选的日期计算运行总计?,ssas,mdx,cumulative-sum,Ssas,Mdx,Cumulative Sum,我需要有计算过的成员来计算Dim日期上的运行总数 这应该适用于在报告中过滤的所有日期。 大多数解决方案都是从Dim date中的第一个日期或Null计算到当前成员,但我需要从筛选到当前成员的第一个日期计算,并排除它们不在筛选中的日期 试试这个: //capture the dates selected in the where clause of the query CREATE DYNAMIC SET CURRENTCUBE.SelectedDates as [Dim Date].[Date]
//capture the dates selected in the where clause of the query
CREATE DYNAMIC SET CURRENTCUBE.SelectedDates as
[Dim Date].[Date].[Date].Members;
CREATE MEMBER CURRENTCUBE.[Measures].[Cumulative Sale Price] as
Sum(
{
SelectedDates.Item(0).Item(0)
:
Tail(Existing [Dim Date].[Date].[Date].Members, 1).Item(0).Item(0) //capture the last date present in the Filter context for this cell
},
[Measures].[Sale Price]
);
CREATE MEMBER CURRENTCUBE.[Measures].[Cumulative Sale Price with Skips] as
Sum(
Exists(
SelectedDates,
{
SelectedDates.Item(0).Item(0)
:
Tail(Existing [Dim Date].[Date].[Date].Members, 1).Item(0).Item(0) //capture the last date present in the Filter context for this cell
}
),
[Measures].[Sale Price]
);
非常感谢您的回答,这对我很有帮助,但是如果我们排除了第一个成员和当前成员之间的一些日期,那么在我们的计算中,如果第一个成员是2017-01,当前成员是2019-10,如果我们只筛选了2017年和2019年的暗淡日期,2018年的所有价格都将汇总,我们可以用mdx进行递归求和吗?如果我们可以将每个成员与前一个成员相加,也许我们可以解决这个问题,您知道如何在mdx中进行递归聚合吗?@sepideh.sp我在我的答案中添加了第二个度量。看看这是否能像你所希望的那样处理跳过的日期。非常感谢你的帮助,它成功了:)我在DimDate中使用date时有性能问题,在YearMonth中没有问题,但是当我们详细说明到今天为止它至少加载了10秒时,我们能做些工作来提高性能吗?