MDX ParallelPeriod,在excel 2010数据透视表中具有多选日期值

时间:2016-05-06 02:08:43

标签: visual-studio-2010 excel-2010 mdx ssas-2012

我在Visio Studio 2010多维数据集项目中通过"New Calculated Member"创建了一个计算度量

表达式如下:

[Measures].[Extended Price],
PARALLELPERIOD([Dim Calendar].[RetailCalendar].[Retail Year], 1,[Dim Calendar].[RetailCalendar].currentmember)

这使用Dim Calendar层次结构RetailCalendar:

Retail Year,
Retail Quarter,
Retail Month,
Retail Week,
Retail Day

在Excel 2010数据透视表中使用此度量值LY时,只要选择了日期层次结构中的一个成员,它就可以正常工作。

eg. Retail Year 2016 only
eg. Retail Week 2016 24 only.

如何编写此计算以便允许选择多个日期?

在寻找解决方案后,我得到了:

aggregate
(
    Generate(
        existing [Dim Calendar].[RetailCalendar].[PK Date].members,
        (PARALLELPERIOD(
            [Dim Calendar].[RetailCalendar].[Retail Year], 1,[Dim Calendar].[RetailCalendar].currentmember
            )
        )
    ,[Measures].[Extended Price])
)

会产生null

1 个答案:

答案 0 :(得分:0)

我知道这篇文章已经很老了,希望你现在找到了答案!我遇到了完全相同的问题,我想我会发布我的解决方案以帮助其他人搜索。

第一步 - 您需要在多维数据集的MDX脚本中为Date维创建一个动态集。即。

File.delete()

第二步 - 获取动态集的头部(第一个)和尾部(最后一个)。这两个函数将结果生成为元组,因此我们需要使用.Item(0)来提取成员部分,即

CREATE 
 DYNAMIC SET CURRENTCUBE.[Dates Selected] AS          
           EXISTING [Date].[Calendar].[Calendar Date]; 

这些可以与Range一起使用,并与PARALLELPERIOD和SUM结合使用以获得结果,即

HEAD([Dates Selected],1).Item(0)
TAIL([Dates Selected],1).Item(0)

我希望这有帮助!