代码之家  ›  专栏  ›  技术社区  ›  Tullo_x86

在SSAS中跨内联计算成员保留语言

  •  2
  • Tullo_x86  · 技术社区  · 16 年前

    问题:我需要从多维数据集中检索给定单元格的语言。单元是由代码生成的MDX定义的,MDX可以具有任意级别的间接性,直到计算成员和集合为止(在 WITH 条款)。当您在查询中以内联方式声明计算成员时,SSAS似乎忽略指定成员的语言。

    例子:

    • 多维数据集的默认区域设置为1033(en-US)
    • 多维数据集包含一个名为 [Net Pounds] 定义为 [Net Amt], language=2057 (英语GB)
    • 查询请求将此度量值与内联计算度量值一起使用,该度量值只是 [净重]
    • 直接使用时,度量值在en-gb区域设置中格式化,但当有别名时,度量值将返回到使用en-us的多维数据集默认值。

    查询如下所示:

    WITH MEMBER [Measures].[Pounds Indirect] AS [Measures].[Net Pounds]
    SELECT { [Measures].[Pounds Indirect], [Measures].[Net Pounds] } ON AXIS (0)
    FROM [Cube] CELL PROPERTIES language, value, formatted_value
    

    查询返回预期的两个单元格,但只使用 [净重] 直接使用时的区域设置。

    SSAS中是否有允许计算成员中的区域设置信息可见的选项或开关?我认识到可以在特定的区域设置中声明内联计算成员,但这需要首先从元组中提取区域设置,因为多维数据集的成员在应用程序的查询模式中是孤立的,所以这是未知的。

    3 回复  |  直到 14 年前
        1
  •  1
  •   sra Jon    14 年前

    MEMBER [Measures].[Category] AS [Dim Category].[Category Parent ID].CURRENTMEMBER.Properties("LCID1036")
    MEMBER [Measures].[Survey Date] AS [Dim Survey Date].[Hierarchy].CURRENTMEMBER.Properties("LCID1036")
    
    SELECT 
    NON EMPTY{[Measures].[AVG MFA Score], [Measures].[CategoryIsLeaf], [Measures].[Category], [Measures].[Survey Date]} ON COLUMNS, 
    
    NON EMPTY { filter((DESCENDANTS(STRTOSET("[Dim Survey Date].[Hierarchy].members"),[Dim Survey Date].[Hierarchy].[Month],SELF), STRTOSET("[Dim Category].[Category Parent ID].members")),[Measures].[AVG MFA Score]<>null)}
    
    DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
    from [MFA DWH]
    
        2
  •  0
  •   ajdams    16 年前

    通常,只有在翻译将标题列绑定到数据源时,区域设置信息才可用,您的示例就是这样吗?

        3
  •  0
  •   Tullo_x86    15 年前

    结果发现这里没有好的解决办法。在查询中声明计算成员时,必须指定区域设置,否则将默认为多维数据集的区域设置。显然,这就是规则。