在 MDX 表达式中按名称而不是 ID 引用成员

Reference a Member by Name instead of ID, in MDX expression

在谷歌搜索失败后,我决定提出并回答这个问题。对于像我这样的一些 SQL DBA 来说,处理 MDX 不是日常工作,而是更多 "once in a while" 的事情。所以当一个看似简单的问题出现时,有一个简单的答案是很好的。

"How do I reference a Member by its Name (instead of its ID or identifier), in an MDX query?"在 STRTOMEMBER 或 STRTOSET 函数中,或在 WHERE 子句行(切片器)中((不要与 SQL WHERE 子句混淆!))

示例--

维度层次结构:[Family Hierarchy]

所述层次结构中的维度,从上到下:ParentChild

每个维度的成员包括(ID,"Name"):

  1. Parent 成员:

    • 1, "Mom"
    • 2,"Pop"
  2. Child 成员:

    • 3, "Bro"
    • 4,"Sis"

要切入 Child 成员 "Bro",我会在我的 WHERE 子句中使用以下表达式:

[Family Hierarchy].[Child].&[3]

但我不希望我的报告层 know/care 关于该 ID 是什么。我想使用 name"Bro"。我该怎么做?

只需从表达式的最后一个元素中删除与号并使用名称:

[Family Hierarchy].[Child].[Bro]

或者在STRTOMEMBER用法中,STRTOMEMBER('[Family Hierarchy].[Child].[Bro]')