解析字符串时未在多维数据集中找到成员
Member was not found in the cube when the string was parsed
我在一个应用程序中工作,其中我有一个包含成员值的数据库 table,但是,数据库中的成员可能与多维数据集中的成员不同。例如:
数据库:
- 平均速度
- 平均时间
- 平均距离
多维数据集:
- 平均速度
- 平均时间
我的 MDX 是这样的:
WITH MEMBER [IDENTIFIER] AS [Measures].[AverageDistance]
MEMBER [DateYear] AS
'ANCESTOR( [DimDate].[All DimDate].CurrentMember,[DimDate].[All DimDate].CurrentMember.Level.Ordinal -1).Member_Key'
MEMBER [DateMonth] AS
'ANCESTOR( [DimDate].[All DimDate].CurrentMember,[DimDate].[All DimDate].CurrentMember.Level.Ordinal -2).Member_Key'
MEMBER [DateDay] AS
'ANCESTOR( [DimDate].[All DimDate].CurrentMember,[DimDate].[All DimFecha].CurrentMember.Level.Ordinal -3).Member_Key'
SET [COLUMNS] as ' {[DateYear],[DateMonth],[DateDay],[DateDay]} '
SET [IDENTIFIERS] as ' {[IDENTIFIER]} '
SELECT { [DimDate].[All DimDate].[All] } ON ROWS,
{ [COLUMNS] + [IDENTIFIERS] } ON COLUMNS
FROM ( select {[DimDate].[All DimDate].[Day].&[20100401]:[DimDate].[All DimDate].[Day].&[20180628] }
on 0 from [CUBE])
WHERE ( [DimPlace].[Place].&[000001] )
当我执行查询时,它给了我下一个错误:
- 当
字符串 [Measures].[AverageDistance] 已被解析。
如果成员不存在,我想 return null。
我知道我可以使用 ISERROR(),但如果成员 不存在 ,我只想要空值,如果有其他错误,我必须将其显示给用户。
有没有办法从 MDX 查询中实现这一点?
如果您只限于一个陈述,那么 IsError
可能是您可以达到的最佳效果。但是,如果您可以 运行 另一条语句,然后生成最终的 MDX 语句,那么您可以先检查存在哪些度量,然后适当地生成您的 MDX。
查看所有度量的简单语句是
SELECT {} on COLUMNS,
Measures.AllMembers on ROWS
FROM [CUBE]
我在一个应用程序中工作,其中我有一个包含成员值的数据库 table,但是,数据库中的成员可能与多维数据集中的成员不同。例如:
数据库:
- 平均速度
- 平均时间
- 平均距离
多维数据集:
- 平均速度
- 平均时间
我的 MDX 是这样的:
WITH MEMBER [IDENTIFIER] AS [Measures].[AverageDistance]
MEMBER [DateYear] AS
'ANCESTOR( [DimDate].[All DimDate].CurrentMember,[DimDate].[All DimDate].CurrentMember.Level.Ordinal -1).Member_Key'
MEMBER [DateMonth] AS
'ANCESTOR( [DimDate].[All DimDate].CurrentMember,[DimDate].[All DimDate].CurrentMember.Level.Ordinal -2).Member_Key'
MEMBER [DateDay] AS
'ANCESTOR( [DimDate].[All DimDate].CurrentMember,[DimDate].[All DimFecha].CurrentMember.Level.Ordinal -3).Member_Key'
SET [COLUMNS] as ' {[DateYear],[DateMonth],[DateDay],[DateDay]} '
SET [IDENTIFIERS] as ' {[IDENTIFIER]} '
SELECT { [DimDate].[All DimDate].[All] } ON ROWS,
{ [COLUMNS] + [IDENTIFIERS] } ON COLUMNS
FROM ( select {[DimDate].[All DimDate].[Day].&[20100401]:[DimDate].[All DimDate].[Day].&[20180628] }
on 0 from [CUBE])
WHERE ( [DimPlace].[Place].&[000001] )
当我执行查询时,它给了我下一个错误:
- 当 字符串 [Measures].[AverageDistance] 已被解析。
如果成员不存在,我想 return null。
我知道我可以使用 ISERROR(),但如果成员 不存在 ,我只想要空值,如果有其他错误,我必须将其显示给用户。
有没有办法从 MDX 查询中实现这一点?
如果您只限于一个陈述,那么 IsError
可能是您可以达到的最佳效果。但是,如果您可以 运行 另一条语句,然后生成最终的 MDX 语句,那么您可以先检查存在哪些度量,然后适当地生成您的 MDX。
查看所有度量的简单语句是
SELECT {} on COLUMNS,
Measures.AllMembers on ROWS
FROM [CUBE]