Неправильный итог MDX - PullRequest
       11

Неправильный итог MDX

0 голосов
/ 27 июня 2019

Я столкнулся с проблемой неправильного общего итога в сводной таблице.Мне нужна помощь для решения этой проблемы.

Колонка закрытия кол-во акций показывает правильное значение, но в столбцах «Последняя продажа» и «Розничная стоимость ABC» отображается неверный общий итог, как показано на снимке экрана ниже. неправильный общий итог в сводной таблице

фактическое значение столбца LASTSALE - 1995 + 1195 + 2099 + 2099 = 7788 вместо 2099.

и столбец ABC Retail Value 5985+1195 + 6297 + 4198 = 17675 вместо 18891.

Я использую упомянутые ниже скрипты: -

CREATE MEMBER CURRENTCUBE.[Measures].[Qty - Closing Stock]
 AS 0,
FORMAT_STRING = "#,##0.00;-#,##0.00", 
FORE_COLOR = iif([Measures].currentmember < 0, 255 /*Red*/,0), 
VISIBLE = 1 ,   DISPLAY_FOLDER = 'Units',
ASSOCIATED_MEASURE_GROUP = 'Item Movement With Value';                                                                     
FORMAT_STRING ( This ) = "#,#";                                                               

Scope([Measures].[Qty - Closing Stock]);                                                                     
This = sum((
            null:[Time].[Year].CurrentMember  *
            null:[Time].[Quarter].CurrentMember *
            null:[Time].[Month Name].CurrentMember *
            null:[Time].[Month].CurrentMember *
            null:[Time].[date].CurrentMember )
,[Measures].[Qty - Movement]);                                                                                                               
End Scope; 

CREATE MEMBER CURRENTCUBE.[Measures].DAYSTODATE AS 
COUNT(NULL:[Time].[Date].CURRENTMEMBER)-1
, VISIBLE = True; 


CREATE MEMBER CURRENTCUBE.[Measures].HADSALE AS 
IIF([Measures].[Price]=0, NULL, [Measures].DAYSTODATE)
, VISIBLE = True; 

SCOPE([Measures].MAXDATE, [Time].[Time].[Date].MEMBERS);  
    THIS = MAX(NULL:[Time].[Date].CURRENTMEMBER, [Measures].HADSALE); 
END SCOPE;

CREATE MEMBER CURRENTCUBE.[Measures].LAS TSALE AS
IIF(ISEMPTY([Measures].MAXDATE), NULL, 
(
([Measures].[Price]) ,
[Time].[Date].[Date].MEMBERS.ITEM([Measures].MAXDATE))),
 VISIBLE = True;                                    

CREATE MEMBER CURRENTCUBE.[Measures].[ABC Retail Value]
 AS 
 sum(
([Time].[date].CurrentMember)
    ,
[Measures].[Qty - Closing Stock] *  [Measures].LAST SALE
 ) ,
VISIBLE = 1  ; 

Эти скрипты работают нормально на Expr1 (уровне варианта), как показано на скриншоте ниже.

эти сценарии работают нормально на Expr1 (уровень варианта)

, если я удаляю Exr1 из фильтра, результат отличается.

Если я удаляю Exr1 из фильтра, результат будет другим

, хотя фактическая цена последней продажи 10300302 Позиция 2099, но на коротком экране выше показано 18891.

, если мы видим детали этого элемента.

введите описание изображения здесь

мое основное требование - я хочу рассчитать стоимость запаса на уровне позиции, уровня местоположения или уровня варианта.используя формулу.

Закрытие акций * LastSale Цена на уровне даты / периода.

, просто я хочу преобразовать свой ssms-запрос в mdx-скрипт, как показано ниже: -

введите описание изображения здесь

...