Mdx 根据字母顺序对集合应用秩函数

Mdx 根据字母顺序对集合应用秩函数,mdx,Mdx,是否可以创建一个根据字母顺序生成集合排名的度量值,即Aleen应为1。。。。Zebedie应该排名101(集合有101个项目) 这不起作用: MEMBER [Measures].[Alphabetic_Rank] AS RANK( [CustomerName].CurrentMember, ORDER( [CustomerName], [CustomerName], ASC

是否可以创建一个根据字母顺序生成集合排名的度量值,即Aleen应为1。。。。Zebedie应该排名101(集合有101个项目)

这不起作用:

MEMBER [Measures].[Alphabetic_Rank] AS 
    RANK(
        [CustomerName].CurrentMember,
        ORDER(
            [CustomerName],
            [CustomerName],
            ASC
            )
        )
WITH 
SET [orderedSet] AS
    ORDER(
    [Operator].members,
    [Operator].currentmember.name,
    BASC
    )
MEMBER [Measures].[newMeasure] AS
    RANK(
    [orderedSet].currentmember, 
    [orderedSet].members
    )
SELECT
   {} ON COLUMNS,
   [orderedSet] 
   * 
   [Measures].[newMeasure] ON ROWS
FROM [ourCube]

编辑

尝试应用此方法的另一个示例是以下同样不起作用的示例:

MEMBER [Measures].[Alphabetic_Rank] AS 
    RANK(
        [CustomerName].CurrentMember,
        ORDER(
            [CustomerName],
            [CustomerName],
            ASC
            )
        )
WITH 
SET [orderedSet] AS
    ORDER(
    [Operator].members,
    [Operator].currentmember.name,
    BASC
    )
MEMBER [Measures].[newMeasure] AS
    RANK(
    [orderedSet].currentmember, 
    [orderedSet].members
    )
SELECT
   {} ON COLUMNS,
   [orderedSet] 
   * 
   [Measures].[newMeasure] ON ROWS
FROM [ourCube]

使用名称作为订单的数值如何:

MEMBER [Measures].[Alphabetic_Rank] AS 
    RANK(
        [CustomerName].CurrentMember,
        ORDER(
            [CustomerName].members,
            [CustomerName].currentMember.NAME,
            BASC
            )
        )
编辑第二部分:

WITH 
SET [orderedSet] AS
    ORDER(
    [Operator].members,
    [Operator].currentmember.name,
    BASC
    )
MEMBER [Measures].[newMeasure] AS
    RANK(
    [Operator].currentmember, 
    [orderedSet]
    )
SELECT
   [Measures].[newMeasure] ON COLUMNS,
   [orderedSet] ON ROWS
FROM [ourCube]

+1谢谢Mark…一如往常:我试着将你的逻辑应用到我编辑到OP中的另一个例子中-我做错了什么?谢谢Marc…为什么要将
[orderedSet]更改为
[orderedSet]
,因为
函数的第二个参数网帮助很大?它们肯定是一样的吗?不确定,但我想问题更多的是关于[ordereset]。currentMember被[Operator]替换.currentMember-至少@icCube是这样工作的-在这种情况下使用axis中的currentMember。谢谢Marc-因此可以这样说,在
MDX
中,不能使用
.members
。currentMember
来对抗在
WITH
子句中创建的自定义
,至少在分析中是这样吗服务,
成员
只能用于“层次表达式”或“级别表达式”,是从层次对象类型或级别对象类型转换为设置对象类型的方法(请参阅)。集合已经是集合,不需要类型转换。