关于level,member概念以及表达式

0
图是我的日历维度
wd.png

我新建个计算字段,这样写是对的:
(.,PARALLELPERIOD( ..,1,. ))
这样写是错的:
(.,PARALLELPERIOD( .,1,..))
函数说明是这样:PARALLELPERIOD([«Level» ]),请注意粗体及斜体部分,对照我的计算字段,似乎该这样理解..是level,.是member。这与我的理解正好相反,求解释
已邀请:
1

brucelu - 大数据、数据仓库、数据挖掘均有涉猎 2013-08-10 回答

你第一个表达式的完全形态是:(.,PARALLELPERIOD( ..,1,..CurrentMember))
如果指定了级别表达式,但未指定成员表达式,会默认给成员表达式指定CurrentMember。
具体可以参考:http://msdn.microsoft.com/en-u ... .aspx
至于level和member的概念:
level可以理解为级别,比如年月日,年是一个级别,月也是一个级别,同样日也是一个级别。
member是维度属性(包括度量值维度)的“值”,看清楚了,是一个值哦。它可以对应到level的每个层级里面去,比如,年里面的&是一个member了,月和日也是如此。
我们可以理解为level是一个集合,member是里面的元素,不知道你有没有写过SSRS报表的语句,里面会经常出现“...AllMembers”类似的语句,这个AllMembers就是level“"下面的所有成员。
上面解释的level和member应该够清楚了,回到这个表达式,你可以发现两个表达式之间有很大的不一样。
第一个是..这个level对应的..CurrentMember,这个没有问题。
第二个是 .这个level下面对应...CurrentMember,可以明显的看出不匹配,所以会报错的了。希望对你的理解有帮助哈。
0

慢羊羊 - 天善智能微软BI达人 2013-08-11 回答

解释的非常清楚,谢谢

要回复问题请先登录注册