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

时间:2010-03-19 01:54:03

标签: globalization mdx ssas

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

示例:

  • 多维数据集的默认语言环境是1033(en-US)
  • 多维数据集包含名为[Net Pounds]的计算度量,其定义为[Net Amt], language=2057(zh-CN)
  • 查询请求此度量以及内联计算度量,该度量只是[Net Pounds]的别名
  • 直接使用时,度量采用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

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

SSAS中是否有选项或开关允许区域设置信息在计算成员中可见?我意识到可以在特定的语言环境中声明内联计算成员,但这将涉及首先从元组中提取语言环境(因为多维数据集的成员在应用程序的查询模式中是隔离的)是未知的。

3 个答案:

答案 0 :(得分:1)

WITH

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]

答案 1 :(得分:0)

通常情况下,区域设置信息仅在翻译的标题列绑定到数据源时才可用,这是否适用于您的示例?

答案 2 :(得分:0)

原来这里没有好的解决方案。在查询中声明计算成员时,必须指定语言环境,否则默认为多维数据集的语言环境。显然,他们是规则。

相关问题