Можете ли вы попробовать с:
WITH
MEMBER [Measures].[X] AS
([Indicador].[Indicador Descrição].&[X],[Measures].[MONTANTE]), FORMAT_STRING = '#,##0.00;-#,##0.00;;0'
MEMBER [Measures].[Y] AS
([Indicador].[Indicador Descrição].&[Y],[Measures].[MONTANTE]), FORMAT_STRING = '#,##0.00;-#,##0.00;;0'
SELECT
NON EMPTY {[Measures].[X],[Measures].[Y]} ON COLUMNS,
NON EMPTY{[Classificador Orgânico].[A].children*
[Programas e Medidas].[A].children*
[Classificador Económico Despesa].[A].children*
[Classificador Económico Despesa].[B].children*
[Classificador Económico Despesa].[C].children*
[Classificador Económico Despesa Rubricas].[A].children*
[Classificador Económico Despesa Rubricas].[B].children*
[Fonte de Financiamento].[A].children} ON ROWS
FROM [Cube]
WHERE ([Calendar].[Year].&[2018],[Calendar].[Month].&[04])
Я только что добавил FORMAT_STRING.Первый аргумент - как форматировать положительные значения, второй - как форматировать отрицательные значения, третий аргумент - как форматировать 0 значений, а четвертый аргумент - как форматировать NULL - вместо этого выведите 0.
Проблема с использованием CoalesceEmpty или isEmpty, подобных этой
IIF(ISEMPTY(([Indicador].[Indicador Descrição].&[X],[Measures].[MONTANTE])) , 0 , ([Indicador].[Indicador Descrição].&[X],[Measures].[MONTANTE]))
, заключается в том, что вы заполняете пустые ячейки в кубе нулями, поэтому результирующий набор перекрестного соединения будет огромным, и запрос, вероятно, выиграетт финиш на всех.