Замена пробела текстом "NA" или "MISSING"

Я пытаюсь заменить пробелы в данных текстом "MISSING" или "NA".

CoalesceEmpty([Product Type].[All Product Type].[                  ],"MISSING")

Я пробовал приведенный выше код, с или без кавычек вокруг MISSING.

Получается следующая ошибка: CoalesceEmpty ([Тип продукта].[Весь тип продукта].[ ],"MISSING") недопустим и не может использоваться в запросе.

PS Тип продукта - это измерение.

Я пробовал эту функцию на measures и там все работало нормально.

2 ответа

Решение

Я не понимаю, что означает этот пробел - у вас действительно есть член, который называется [ ]?! ... [Product Type].[All Product Type].[ ]

Нам также нужно увидеть весь сценарий - контекст этого фрагмента - чтобы точно вам помочь.

Если вы хотите проверить currentmember иерархии [Product Type].[All Product Type] для нуля, то вы можете сделать следующее:

IIF(
  [Product Type].[All Product Type].currentmember.membervalue = 0,
  "MISSING",
  [Product Type].[All Product Type].currentmember.membervalue
)

В кубах, в которые я играю, вышеописанное никогда не произойдет, поскольку все участники существуют, поэтому все участники имеют membervalue, Вот пример замены заготовок:

WITH 
  MEMBER [Measures].[Internet Sales Amount 2] AS 
    IIF
    (
      [Measures].[Internet Sales Amount] = 0
     ,'MISSING'
     ,[Measures].[Internet Sales Amount]
    ) 
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].[Internet Sales Amount 2]
  } ON 0
 ,
    [Customer].[Customer Geography].[Country].MEMBERS
  * 
    [Product].[Category].MEMBERS ON 1
FROM [Adventure Works];

Новая мера, которую я создал, приводит к результатам в 4 столбце ниже:

ФункцияCoalesceEmpty не принимает членов или наборы. Оба параметра должны быть числовыми выражениями. Смотрите ссылку MSDN здесь

Другие вопросы по тегам