2016-08-23 4 views
1

У меня есть MDX запрос, генерируемый Tableau в OLAP куба:Округление вычислить значение на MDX

WITH MEMBER [Measures].[Average] AS [Measures].[Summary Value]/[Measures].[Quantity SUM] 

SELECT NON EMPTY { [Measures].[Quantity SUM], [Measures].[Summary Value], [Measures].[Average] } ON COLUMNS, NON EMPTY { ([Waiter].[WaiterName].[WaiterName].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [ProductCube] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 

Проблема с вычисленным значением - «насчитайте». Как я могу округлить это значение до двух знаков после запятой?

ответ

1

Вы можете попробовать это:

WITH MEMBER [Measures].[Average] AS [Measures].[Summary Value]/[Measures].[Quantity SUM] 
,FORMAT_STRING="#0.00" 
SELECT 
    (...) 
+0

К сожалению, ничего не меняется. Вычисленное значение «Среднее» одинаковое и имеет много знаков после запятой. – kenzolek

+1

попытался выполнить запрос по кубу SSAS и отлично работает. Вы должны попробовать и сделать это прямо в Tableau. Такое форматирование всегда должно выполняться в «front-end» (tableau, ssrs, web-app, ...). Google googled для формата в таблице и нашел это: [Табличные номера форматов документации] (http://onlinehelp.tableau.com/current/pro/desktop/en-us/formatting_specific_numbers.html) – mxix

+1

@mxix Upvoted. По соображениям производительности я бы использовал форматированную строку или форматирование таблиц, а не функцию Round. – GregGalloway

0

Чтобы заставить процесс, который вы могли бы попробовать это:

WITH 
    MEMBER testvalue AS 
    VBA!Round 
    (0.57372843213 
    ,2 
    ) 
SELECT 
    {[Measures].[testvalue]} ON 0 
FROM [Adventure Works]; 

Хотя я уверен, если эта функция будет поддерживаться в Tableau.

Смежные вопросы