programing

OLAP 큐브에서 특성이 필터링될 때 Grand Total이 잘못되었습니다.

instargram 2023. 9. 9. 08:52
반응형

OLAP 큐브에서 특성이 필터링될 때 Grand Total이 잘못되었습니다.

판매원당 판매 금액을 확인하려는 사용자.샘플 데이터:

Salesperson   Sales Amount    
001                   1000    
002                    500    
003                    750
Grand Total:          2250

괜찮아 보이지만 우리는 다음과 같은 계층을 가지고 있습니다.Company > Class > Group > Subgroup사용자가 필터에서 이 계층을 사용하려고 할 경우 - Grand Total이 실패합니다(이 계층에서 속성이 선택되지 않은 경우).샘플:

Salesperson   Sales Amount    
001                   1000    
002                    500    
003                    750    
Grand Total:           350

이전에 Date 속성을 필터링하려고 했을 때 동일한 문제를 발견한 적이 있습니다. 매월 매일 선택하지 않으면 Grand Total도 잘못 표시됩니다.

왜 이런 일이 일어나고 어떻게 고쳐야 하는지 알고 있습니까?

판매 금액은 물리적 측정값(계산된 측정값이 아님)으로 SQL 보기에서 선택합니다(모든 사실에 동일함).

Wrong Grand Total

여기서도 똑같은 질문을 했는데 아무도 답을 못 했어요.

모든 MDX 계산(범위)을 삭제하려고 했지만 여전히 Grand Total이 틀렸습니다.

Clean MDX Calculations

Wrong Grand Total

편집

그런 식으로 필터링할 때 문제가 발생한다는 것을 알게 되었습니다.

Hierarchy filter

위의 이미지와 같이 계층의 1단계에서 선택된 1개의 요소, 2단계에서 선택된 1개의 요소, 3단계에서 선택된 1개의 요소.

세 번째 레벨이 필터링되지 않으면 Grand Total이 잘 됩니다.

EDIT 2

SSAS에서 추적을 해봤는데 엑셀과 똑같은 출력을 돌려줍니다.행에서 판매원 차원을 사용할 때 다음과 같은 MDX를 생성했습니다.

SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS, 
NON EMPTY { ([Salesperson].[Salesperson].[Salesperson].ALLMEMBERS ) } 
DIMENSION PROPERTIES MEMBER_CAPTION, 
MEMBER_UNIQUE_NAME ON ROWS FROM ( 
SELECT ( {  [Item].[Class - Group - Subgroup].[Class].&[XXX]&[1.], 
            [Item].[Class - Group - Subgroup].[Group].&[XXX]&[2.]&[2.2.], 
            [Item].[Class - Group - Subgroup].[Subgroup].&[XXX]&[2.]&[2.3.]&[2.3.1.] } 
) ON COLUMNS FROM ( SELECT ( { [Company].[Company].&[XXX] } ) ON COLUMNS 
FROM [Sales])) 
WHERE ( [Company].[Company].&[XXX], [Item].[Class - Group - Subgroup].CurrentMember ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

판매원 차원 없이 생성된 MDX:

SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS 
FROM ( SELECT ( { [Item].[Class - Group - Subgroup].[Class].&[XXX]&[1.], 
[Item].[Class - Group - Subgroup].[Group].&[XXX]&[2.]&[2.2.], 
[Item].[Class - Group - Subgroup].[Subgroup].&[XXX]&[2.]&[2.3.]&[2.3.1.] } ) ON COLUMNS 
FROM ( SELECT ( { [Company].[Company].&[XXX] } ) ON COLUMNS 
FROM [Sales])) WHERE ( [Company].[Company].&[XXX], [Item].[Class - Group - Subgroup].CurrentMember ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

행에 차원을 사용하지 않더라도(위의 샘플에서 판매원 차원을 사용했습니다) 잘못된 Grand Total이 표시됩니다.

예를 들어 다음과 같이 표시됩니다.

Sales Amount 
350

행에 판매원 차원을 사용할 경우:

Salesperson   Sales Amount    
001                   1000    
002                    500    
003                    750    
Grand Total:           350

저는 이 문제에 대해 다른 각도를 가지고 여기서 문제가 되는 것은 SQL/SSAS가 아니라 엑셀이라고 제안하고 싶습니다.하위 합계 및 전체 합계가 있는 피벗 테이블에서 합계는 큐브가 아닌 클라이언트 측 응용 프로그램으로 계산됩니다.저는 이것을 몇 번 경험한 적이 있는데 엑셀의 알려진 문제점이라고 생각합니다.이 솔루션은 일반적으로 Excel에서 계산된 필드를 새로 생성하여 전체 합계를 제공합니다.특히 Excel이 큐브에 액세스하는 다른 사용자를 위한 Go-to-클라이언트 애플리케이션이라면 이는 매우 실망스러운 일입니다.위로가 된다면, 저도 Tableau와 같은 다른 툴에서 한두 번 경험해 보았지만 솔루션이 조금 다른 이유로 경험해 보았습니다.

다음은 문제를 인정하는 Microsoft KB의 링크입니다.2003-2019 버전에 영향을 줍니다.

https://support.microsoft.com/en-us/help/211470/calculated-field-returns-incorrect-grand-total-in-excel

언급URL : https://stackoverflow.com/questions/55760416/in-olap-cube-wrong-grand-total-when-attribute-is-filtered

반응형