我正在一个应用程序中工作,该应用程序具有一个带有成员值的数据库表,但是可能是数据库中的成员与多维数据集中的成员不同。例如:
数据库:
多维数据集:
我的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] )
当我执行查询时,它给我下一个错误:
如果该成员不存在,我想返回null。
我知道我可以使用ISERROR(),但是如果成员不存在,我只想返回null值,如果有其他错误,我必须向用户显示。
有没有一种方法可以通过MDX查询来实现?
答案 0 :(得分:1)
如果您只限于一个陈述,那么IsError
可能是您可以实现的最佳选择。但是,如果可以运行另一条语句然后生成最终的MDX语句,则可以首先检查存在哪些度量,然后适当地生成MDX。
一个简单的声明可以看到所有措施
SELECT {} on COLUMNS,
Measures.AllMembers on ROWS
FROM [CUBE]