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

Ssas 在MDX表达式中,按名称而不是ID引用成员,ssas,mdx,Ssas,Mdx,在谷歌搜索失败后,我决定提问并回答这个问题。对于像我这样的一些SQL DBA来说,处理MDX不是一个日常事务,而是一件“偶尔”的事情。所以,当一个看似简单的问题出现时,有一个简单的答案是很好的 “在MDX查询中,如何通过名称(而不是ID或标识符)引用成员?”例如,在strotmember或strotset函数中,或在WHERE子句行(切片器)(不要与SQL WHERE子句混淆!)) 范例-- 维度层次结构:[Family hierarchy] 所述层次结构中的维度,从上到下:父级,子级 每个维度

在谷歌搜索失败后,我决定提问并回答这个问题。对于像我这样的一些SQL DBA来说,处理MDX不是一个日常事务,而是一件“偶尔”的事情。所以,当一个看似简单的问题出现时,有一个简单的答案是很好的

“在MDX查询中,如何通过名称(而不是ID或标识符)引用成员?”例如,在strotmember或strotset函数中,或在WHERE子句行(切片器)(不要与SQL WHERE子句混淆!))

范例--

维度层次结构:
[Family hierarchy]

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

每个维度的成员包括(ID,“名称”):

  • 家长
    成员:

    • 1“妈妈”
    • 2,“流行音乐”
  • 子成员
    成员:

    • 3、“兄弟”
    • 4,“Sis”
  • 要对
    Child
    成员“Bro”进行切片,我将在WHERE子句中使用以下表达式:

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


    但我不想让我的报告层知道/关心该ID是什么。我想使用名称“兄弟”。如何执行此操作?

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

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


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

    如果连接到SSAS,然后在将成员拖动到脚本窗口时打开一个新的MDX脚本,它将为您提供名称?是的,如果将鼠标悬停在多维数据集浏览器窗格中的成员上,它将同时显示ID和名称。需要注意的一点是,在客户端中,使用密钥版本有时会很有用,这使您可以自由选择,如果将来更改标题名称,您的应用程序仍然可以正常工作