找不到特定实体时如何克服 MDX 查询错误
How to Overcome MDX Query Error When It Can't Find Specific Entity
当我 运行 MDX 查询时:
select {[Measures].[all_accounts]} ON COLUMNS,
{{[Country].[Country].[Country].&[italy]}*
{[TD].[TD].[date].&[2016-09-02T03:00:00.000]:[TD].[TD].[date].&[2016-09-02T03:08:00.000]},
{[Country].[Country].[Country].&[Germany]}*
{[TD].[TD].[date].&[2016-08-16T04:00:00.000]:[TD].[TD].[date].&[2016-08-16T04:03:00.000]}}
ON ROWS
FROM [cube]
我得到一个错误,因为 'italy' 不是在国家/地区维度中找到的实体。
没有返回结果。
我希望能够 运行 mdx 而不必知道维度中的实体名称,并且只为那些存在的实体取回结果。在这个例子中 'Germany'。我该如何克服这个问题?
恐怕不是一个非常肯定的答案,但如果您在脚本中使用成员唯一名称,例如 [Country].[Country].[Country].&[italy]
,那么如果该成员不在多维数据集中,您将收到错误...我不知道不相信有解决方法。
我必须补充一点,这个 'limitation' 从来没有给我带来任何问题。
您可以更改服务器的配置,icCube.xml,将未找到的成员转换为 null(这是有风险的)。
icCube.mdxEvalUnknownMemberError
如果您不想为整个服务器更改此设置,您可以对每个 MDX 查询使用注释。例如,以下查询不会 return 缺少 &[_FR] 成员的任何内容:
//#prop( icCube.mdxEvalUnknownMemberError = false )
select {
[Geography].[Geo].[Country].&[FR_],
[Geography].[Geo].[Country].&[US]
} on 0 from [Sales]
当我 运行 MDX 查询时:
select {[Measures].[all_accounts]} ON COLUMNS,
{{[Country].[Country].[Country].&[italy]}*
{[TD].[TD].[date].&[2016-09-02T03:00:00.000]:[TD].[TD].[date].&[2016-09-02T03:08:00.000]},
{[Country].[Country].[Country].&[Germany]}*
{[TD].[TD].[date].&[2016-08-16T04:00:00.000]:[TD].[TD].[date].&[2016-08-16T04:03:00.000]}}
ON ROWS
FROM [cube]
我得到一个错误,因为 'italy' 不是在国家/地区维度中找到的实体。 没有返回结果。
我希望能够 运行 mdx 而不必知道维度中的实体名称,并且只为那些存在的实体取回结果。在这个例子中 'Germany'。我该如何克服这个问题?
恐怕不是一个非常肯定的答案,但如果您在脚本中使用成员唯一名称,例如 [Country].[Country].[Country].&[italy]
,那么如果该成员不在多维数据集中,您将收到错误...我不知道不相信有解决方法。
我必须补充一点,这个 'limitation' 从来没有给我带来任何问题。
您可以更改服务器的配置,icCube.xml,将未找到的成员转换为 null(这是有风险的)。
icCube.mdxEvalUnknownMemberError
如果您不想为整个服务器更改此设置,您可以对每个 MDX 查询使用注释。例如,以下查询不会 return 缺少 &[_FR] 成员的任何内容:
//#prop( icCube.mdxEvalUnknownMemberError = false )
select {
[Geography].[Geo].[Country].&[FR_],
[Geography].[Geo].[Country].&[US]
} on 0 from [Sales]