Я работаю в приложении, где у меня есть таблица базы данных со значениями элементов, но, возможно, в базе данных нет таких элементов, как в кубе. Например:
БАЗА ДАННЫХ:
- Средняя скорость
- Среднее время
- AverageDistance
CUBE:
- AverageSpeed
- Среднее время
Мой 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] )
Когда я выполняю запрос, он выдаёт мне следующую ошибку:
- Элемент [AverageDistance] не был найден в кубе, когда
была проанализирована строка [Показатели]. [Среднее расстояние].
Я хочу вернуть ноль, если член не существует.
Я знаю, что могу использовать ISERROR (), но я просто хочу получить нулевое значение, если элемент не существует , если есть другая ошибка, я должен показать ее пользователю.
Есть ли способ добиться этого с помощью запроса MDX?