度量设计疑惑
看完金老师的文章
http://www.windbi.com/showtopic-425.aspx,我把我的cube的度量值移到了一个维度,事实表只保留一个值字段。这样就出现了金老师所说的问题:
1.量度的半累加性问题
我使用 case when语句 例如
case
when [Dim Measure].[Dim Measure].currentmember is [Dim Measure].[Dim Measure].&[1]
then iif(isleaf([Dim Date].[MoniDate].currentmember),
[Measures].[数值],
avg(DESCENDANTS([Dim Date].[MoniDate].currentmember,
[Dim Date].[MoniDate].[Date Key],self )
,[Measures].[数值])
)
when [Dim Measure].[Dim Measure].currentmember is [Dim Measure].[Dim Measure].&[3]
then iif(ISLEAF([Dim Date].[MoniDate].currentmember),
[Measures].[数值],
max(DESCENDANTS([Dim Date].[MoniDate].currentmember,
[Dim Date].[MoniDate].[Date Key],self )
,[Measures].[数值])
)
但这代码只局限于时间维度的[Dim Date].[MoniDate] Hierachy。因为我的row axis 在使用[Dim Date].[MoniDate]时不会出错,而使用时间维度的其他属性hierachy 或者地区维度会出现数据错误的问题, 因为这个case when语句只涉及([Dim Date].[MoniDate] hierachy,当涉及其他的属性结构的时候,([Dim Date].[MoniDate].currentmember得到的值是([Dim Date].[MoniDate].[All],导致数据出错。
请问如何解决这个问题?
另外 金老师所说的 “其中,量度的半累加性问题请参考技巧四解决”,这个技巧四在哪里能看到?
谢谢