ParrellPeriod 没有返回我所期望的

ParrellPeriod not returning what I expect

我在名为 "Target" 的度量和名为 DimCalendar 的日期维度中设定了年度销售目标。

查看基础数据,我想我应该得到一个不同于以下查询的值 returns。据我了解,此查询将获取 "Target" 度量值,其中关联年份为 2016 年(未来一年或 -1)和特定帐户。

SELECT 
   {[Measures].[Target]} on columns,
   {ParallelPeriod(
      [DimCalendar].[Year].[Year]
     ,-1
     ,[DimCalendar].[Year].&[2015])} on rows
FROM [MySalesCube]
WHERE { [Account].[Account].&[2025] }

这个查询returns

1944768

然而,基础数据加起来似乎只有162064

没有,看来是用魔方浏览器后数据还是有问题。必须重新审视我的 ETL 过程。

这是您指定的:

ParallelPeriod(
  [DimCalendar].[Year].[Year]
 ,-1
 ,[DimCalendar].[Year].&[2015])

意思如下:

Take the year 2015
Then jump the specified number of periods, in your case -1, using the level specified, in your case [Year]

以下应该(我认为)是一个简化但等效的版本 - 如果第一个参数被遗漏,那么它只使用第三个参数的级别:

ParallelPeriod(
  -1
 ,[DimCalendar].[Year].&[2015]) 

尽管我认为您可以使用 lag 使所有内容更具可读性:

[DimCalendar].[Year].&[2015].LAG(-1)

然后在延迟内使用 1 或 -1 是没有意义的,因为我们有函数 NEXTMEMBERprevMEMBER 这可以简化为以下内容:

[DimCalendar].[Year].&[2015].NEXTMEMBER