维度成员作为 MDX 中的计算度量
Posted
技术标签:
【中文标题】维度成员作为 MDX 中的计算度量【英文标题】:Dimension Member as Calculated Measure in MDX 【发布时间】:2009-06-05 16:11:15 【问题描述】:我需要将维度成员作为计算度量返回。
给定:
尺寸
客户 ACME, EMCA, Universal Imports, Universal Exports 销售员 Bob, Fred, Mary, Joe 信用类型董事、经理措施
信用价值 价值关系
客户是包含价值的事实的维度 客户、销售人员和信用类型是包含信用价值的事实的维度我正在尝试执行以下操作:
创建计算的度量,将返回在客户角色中计入最大 $s 的销售人员。例如
| Customer | Director | Manager | Value |
|-------------------|----------|---------|-------|
| ACME | Bob | Fred | 500 |
| EMCA | Bob | Fred | 540 |
| Universal Imports | Mary | Joe | 1000 |
| Universal Exports | Mary | Fred | 33 |
ACME 已将 Bob 评为 490 作为总监
ACME 已将 Fred 评为经理 500
ACME 已将 Mary 评为 10 位董事
我想将此用作计算量度,我可以在客户是 ROW 的任何情况下使用它。
【问题讨论】:
【参考方案1】:如果我正确地理解了您的问题,那么沿着这条线的东西应该可以解决问题(当然,您必须使用正确的级别、层次结构和多维数据集名称):
with
member [Measures].[DirectorTemp] as topcount([Salesperson].[Salesperson].members,1,([Measures].[Credited Value],[Credit Type].[Director],[Customer].currentmember)).item(0).properties("Caption")
member [Measures].[Director] as iif([Measures].[DirectorTemp] = [Salesperson].UnknownMember.properties("caption"), null, [Measures].[DirectorTemp])
member [Measures].[ManagerTemp] as topcount([Salesperson].[Salesperson].members,1,([Measures].[Credited Value],[Credit Type].[Manager],[Customer].currentmember)).item(0).properties("Caption")
member [Measures].[Manager] as iif([Measures].[ManagerTemp] = [Salesperson].UnknownMember.properties("caption"), null, [Measures].[ManagerTemp])
select
[Measures].[Director],[Measures].[Manager],[Measures].[Value] on 0,
[Customer].members on 1
from MyCube
【讨论】:
感谢您的回答。我已经根据我的数据对其进行了调整。一个快速的问题。如果元组返回一组无,我会从销售人员维度获取未知成员。我怎样才能避免这种情况? 我已经编辑了查询,所以它返回 null 而不是“未知”。有点混乱,但它应该可以工作...... 谢谢。我处理的略有不同。我包装了一个 iff(isempty(Tuple Definition), NULL, TOPCOUNT .... 如前所述) 来完成类似的结果。我唯一知道的问题是,当来自客户维度的两个层次结构在 select 语句中并且结果被过滤时,CurrentMember 无法正常工作。以上是关于维度成员作为 MDX 中的计算度量的主要内容,如果未能解决你的问题,请参考以下文章