2012-10-25 5 views
0

SQL Server Analysis Services를 사용하고 있습니다.계산 된 구성원에 대한 MDX CurrentMember 평가 - 이상한 결과

[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME") 

가 이전에, 난 그냥 [MyDimension].[MyOnlyHierarchy].CurrentMember.UniqueName을 작성했다 :

나는 지금, 바로이 작업을 수행하는 계산 된 구성원을 가지고있다. 그들은 어쨌든 동일해야합니다.

이제는 SQL 프로파일 러를 사용하여 응용 프로그램에서 쿼리를 보냈습니다.

말하면
[MyDimension].[MyOnlyHierarchy].&[401][MyDimension].[MyOnlyHierarchy].&[402] 

그것이 AS는 기본 부재를 평가하는 경우로하고 결과를 연접 : 단지 다른 부재에 가산 [MyDimension].[MyOnlyHierarchy]의 간단한 계산 부재를 들면, ID가 (401, 402)와, I는이 결과를 되찾아 오히려 ... 계산 된 구성원의 나에게

나에게 정말 이상한 것은 내가 원래 쿼리를 가지고 가고, 앞에 추가 할 때 다음과 같은 것입니다 고유 한 이름을 부여 이상 :

WITH MEMBER [Measures].[GiveMeCalculatedMemberUniqueName] 
AS 
(
[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME") 
) 

... 나머지 검색어

이 두 번째 측정 값을 사용하여 올바른 결과를 얻습니다! 문맥은 (저에게 적어도) 동일합니다. 모든 것이 동일합니다. 그러나 프로젝트 파일에 선언 된 측정 값은이 인라인 계산 된 멤버와 다른 결과를 제공합니다.

여기 무슨 일 이니? 참고로, 저는 10000 번 재배포했습니다. 서버의 큐브에서 실제 정의를 확인했습니다. 그것은 단지 나에게 이해가되지 않는다.

답변

1

계산 순서는 계산 순서에 따라 계산됩니다. 당신이 그것을 아래로 움직 였고 그것이 해결할 명령이 어떻게 작동했는지에 따라 올바른 결과를 얻을 수 있었기 때문일 수 있습니다. 나는 약간의 블로그를 가지고있다. here하지만 인터넷에 더 많은 기사가있다.

HTH

+0

그래,이 경우 인 것 같습니다. 그러나 그 결과는 처음에는 알아 내지 못했습니다. 블로그 항목을 읽습니다. – UmaN

0

웃긴 ... 나는 이것에 대해 2-3 시간 동안 앉아서 모든 생각을 탐구했다. 그런 다음이 질문을 게시 한 후 하나 더 시도하기로 결정했습니다.

계산 된 구성원의 프로젝트 파일에있는 계산 된 구성원 스크립트 파일의 맨 아래로 이동하십시오.

이제 올바른 결과를 얻을 수 있습니다.