【问题标题】:Create custom hierarchy MDX for dimension为维度创建自定义层次结构 MDX
【发布时间】:2015-12-17 12:36:50
【问题描述】:

在多维数据集中有一个项目维度。项目 - 除了项目编号 - 还可以具有其他(数字)属性。

D_Item

  • 属性 [attrib1]
    • 元素1 [70]
    • 元素2 [40]
    • 元素3 [1]
    • 元素4 [2]
  • 其他层次结构

我的目标是使用 iif 或 case ... when ... 创建可用于切片的新层次结构(或集合?)。 为什么不将其持久化到多维数据集中?因为它是一个非常单一的用例,并且用于报告中......

我想要的结构如下所示:

    WITH MyNewHierarchy AS 
CASE 
WHEN [D_Item].[attrib].Value = 70 then 'Company 1'
WHEN [D_Item].[attrib].Value = 40 then 'Company 2'
WHEN [D_Item].[attrib].Value = 1 OR [D_Item].[attrib].Value = 2 then 'Company 3'
END

SELECT Measure ON COLUMNS,
[D_Date].[Month].Chilren on ROWS

FROM CUBE

WHERE

[MyNewHierarchy].[Company 3]

这可能是一种关系密切的方法,但我希望有一天能达到这个结果。

【问题讨论】:

  • 女士分析服务
  • 是的,它有助于我需要以稍微不同的方式配置数据模型。谢谢你! (自从提出问题后我的第一天就没有工作了)。

标签: mdx hierarchy cube dimension


【解决方案1】:

我不知道你是否可以即时创建一个全新的层次结构。

我知道您可以创建自定义成员并将它们“托管”在未使用的现有层次结构中。您可以使用元组执行此操作,但您必须在每个元组中包含主机的 [All] 成员。

所以你的三个新成员会是这样的:

MEMBER [SomeExistingDim].[SomeExistingHier].[All].[Company 1] AS
   (
      [SomeExistingDim].[SomeExistingHier].[All]
     ,[D_Item].[attrib].[Element1]
   )
MEMBER [SomeExistingDim].[SomeExistingHier].[All].[Company 2] AS
   (
      [SomeExistingDim].[SomeExistingHier].[All]
     ,[D_Item].[attrib].[Element2]
   )
MEMBER [SomeExistingDim].[SomeExistingHier].[All].[Company 3] AS
   (
      [SomeExistingDim].[SomeExistingHier].[All]
     ,[D_Item].[attrib].[Element3]
   )
+
   (
      [SomeExistingDim].[SomeExistingHier].[All]
     ,[D_Item].[attrib].[Element4]
   ) 

然后你可以从上面创建一个自定义集:

SET [newMembers] AS
  {
     [SomeExistingDim].[SomeExistingHier].[All].[Company 1],
     [SomeExistingDim].[SomeExistingHier].[All].[Company 2], 
     [SomeExistingDim].[SomeExistingHier].[All].[Company 3],
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2011-04-27
    相关资源
    最近更新 更多