假设我有一个时间维度,包含所有级别、年、季度、月、日。我每个月有一些销售额和计算的 measere [去年的销售额]
WITH MEMBER [Measures].[sales last year] AS (ParallelPeriod([Time].[Time].[Year],1,[Time].[Time].CurrentMember), [Measures].[sales])
SELECT {[Measures].[sales], [Measures].[sales last year]} ON 0
, [Time].[Time].[Month].Members ON 1
FROM [Sales]
现在,时间维度有一个可见的 UnknownMember,它显示为 [sales last year],与我在层次结构中看到的去年 1 月的值相同。
为什么呢?我怎样才能避免它?我的意思是所有 [去年的销售额] 的总和应该与除第一个年份之外的所有年份的所有 [销售额] 的总和相同。
`PARALLELPERIOD' 的工作方式是它向上移动层次结构直到指定的级别,然后向后或向前移动周期数,然后使用相同的路径再次向下移动。
在这个“沿着路径移动”中,parallelperiod 将再次下降相同的成员序号。因此,如果它从第一个成员向上移动(在您的示例 1 月),它将再次向下移动第一个成员。如果它向上移动第二个成员(在你的例子中二月)它将再次向下移动第二个成员。
这当然打破了未知的层次结构,因为每个孩子都是其父母的第一个成员。
所以假设你有这个层次结构
然后你在未知层次结构的叶成员上做一个平行周期,平行周期将向上移动到未知层次结构的年份级别,向后移动一年并再次向下移动到叶级别,记住它从第一个成员向上移动未知层次结构并向下移动 2015 层次结构的第一个成员,即 2015 年 1 月。