如何在mdx查询中更改列或行的名称

如何在mdx查询中更改列或行的名称,mdx,olap,mondrian,Mdx,Olap,Mondrian,我是蒙德里安和奥拉普的新手。我尝试更改列的名称。我还没换衣服。我的问题是: WITH SET ResponsibleSet AS {[Responsible].[Name].Members MEMBER [Responsible].[RowSum] AS AGGREGATE(ResponsibleSet) SELECT FILTER({[Balance].[Currency].Members}, not [Balance].[Currency].currentMember.Properties(

我是蒙德里安和奥拉普的新手。我尝试更改列的名称。我还没换衣服。我的问题是:

WITH
SET ResponsibleSet AS {[Responsible].[Name].Members
MEMBER [Responsible].[RowSum] AS AGGREGATE(ResponsibleSet)
SELECT FILTER({[Balance].[Currency].Members}, not [Balance].[Currency].currentMember.Properties('Deleted')) ON COLUMNS, 
NON EMPTY {ResponsibleSet, [Responsible].[RowSum]} ON ROWS FROM [Balance Cube] WHERE (Measures.[Sum])
结果:

|         | EXPENSE                     | INCOME                   |
|         | false                       | false                    |
|         | EUR     | TRY     | USD     | EUR    | TRY    | USD    |
+---------+---------+---------+---------+--------+--------+--------+
| Joe     |      25 |      97 |      10 |     15 |    173 |     18 |
|         |      25 |      97 |      10 |     15 |    173 |     18 |
例如:我想将“欧元”列更改为“欧元”。如何使用mdx查询更改重命名,如本例所示? 另外,最后一行没有名称。如何将名称添加到此行


谢谢。

您可以通过两种方式完成:

  • 在Balance.Currency维度中添加全名属性,并显示此属性而不是键
  • 如果您可以为Balance.Currency键和name设置不同的来源,则MEMBER_键将为EUR,但Balance.Currency将为您提供欧元
  • 在UI/报告工具中将欧元转换为欧元

  • 当然,对于1和2,您需要使用货币名称扩展货币维度的源表

    对Mondrian不太确定-但在(标准)MS mdx中,您可以执行以下操作:

    我假设您的多维数据集中欧元的全名为
    [Balance].[Currency].[Currency].[Eur]
    -您需要根据需要替换:

    WITH 
      SET ResponsibleSet AS 
        {[Responsible].[Name].MEMBERS} 
      MEMBER [Responsible].[RowSum] AS 
        Aggregate(ResponsibleSet) 
      MEMBER [Balance].[Currency].[All].[Euro] AS 
        [Balance].[Currency].[Currency].[Eur] 
    SELECT 
      {
        Except
        (
          Filter
          (
            {[Balance].[Currency].MEMBERS}
           ,(NOT 
              [Balance].[Currency].CurrentMember.Properties('Deleted'))
          )
         ,[Balance].[Currency].[Currency].[Eur]
        )
       ,[Balance].[Currency].[Currency].[Euro]
      } ON COLUMNS
     ,NON EMPTY 
        {
          ResponsibleSet
         ,[Responsible].[RowSum]
        } ON ROWS
    FROM [Balance Cube]
    WHERE 
      Measures.[Sum];