2012-09-13 2 views
0

SQL Server Analysis Servises 2008 R2를 사용하고 있습니다.([일부 치수]. [전체], [일부 조치])의 값을 올바르게 대체하는 방법은 무엇입니까? (MDX, SCOPE())

[Some Measure]에 대해 계산할 때 [Some Dimension].[All] 값을 바꾸려면 이 필요합니다. 여기에 내가 시도 내용은 다음과 같습니다

내가 [Some Dimension]에 대해 쿼리 할 때 예상대로이 작동
SCOPE([Some Dimension].[All]); 
    [Measures].[Some Measure] = 123; // for simplicity sake 
END SCOPE; 

- [All] 회원이 123 반환하고 다른 회원이 실제 관련 [Some Measure] 값을 보여 그대로입니다.

그러나 이상한 이유로 다른 모든 차원의 모든 구성원은 이제 [Some Measure]에 대해 123을 반환합니다. 나는 정말로 길을 잃었다. 제발 조언을 내게이 문제를 해결하고 왜 이런 일이 일어나고있다. 호기심이있는 사람을위한

1: [Some Dimension][Some Measure]은 다 대다으로 관련되어 있기 때문에 내가 [All]의 값을 교체하려는 이유입니다. 이 때문에 튜플 ([Some Dimension].[All], [Some Measure])은 항상 큐브에 [Some Measure]의 총 개수를 반환합니다. 내가 무엇 반환을 원하는 [Some Dimension]의 적어도 하나의 회원과 실제로 연결되어 [Some Measure]의 개수입니다. 나머지 치수 'currentmember 큐브에서이 "모든"멤버 해당하는 경우

+1

[일부 차원]. [모두]가 차원의 기본 멤버이며 쿼리에서 암시 적으로 선택 될 수 있습니까? 즉, ([Measures]. [Some Measure], [Some Dimension], [Another Member], [Another Dimension], [[Another Member]])를 질의 할 때 123 또는 적절한 [Measures]를 얻습니다. 일부 측정 값? –

+0

@SantiagoCepas 나는 그것이 실제로 이유라고 생각한다. 귀하의 예에서는 적절한 값을 얻었지만, [Measures]. [Some Measure]. [All]로 변경하면 다시 123입니다. 하지만 어떻게 해결할 수 있습니까? –

+1

정확하게 이해하면 [일부 측정 값]. [모두]가 선택되었을 때 [일부 측정] 만 덮어 쓰고 나머지 큐브의 현재 멤버는 해당하는 "모두"멤버 일 때도 덮어 씁니다. 그렇다면 SCOPE (Root())로 스코프 할당을 변경하는 것이 트릭을 수행해야합니다. –

답변

3

난 당신 만 [Some Dimension].[All]을 선택하면 [Measures].[Some Measure]을 덮어 쓸 것인지 제대로 이해뿐만 아니라합니다. 그렇다면 범위 할당을 SCOPE(Root())으로 변경하는 것이 트릭을 수행해야합니다.