2008-10-13 2 views
2

MDX에서 계산 된 구성원을 정의해야합니다 (SAS OLAP이지만 다른 OLAP 구현을 사용하는 사람들의 응답은 고맙게 생각합니다).MDX에서 계산 된 구성원 정의 - 측정 값의 필터링

새 측정 값은 추가 필터 조건을 적용하여 기존 측정 값에서 계산해야합니다. 내가 계산을 만들 필요 "방향"("에서"또는 "아웃")

  • :

    • 기존의 측정 : "총 트래픽"
    • 기존 차원 나는 예와 명확하게 될 것입니다 가정 추가 필터 (Direction = "In")가있는 "총 트래픽"과 동일한 부재 "들어오는 트래픽"

    문제는 내가 MDX를 알지 못해서 너무 빡빡한 일정에 있습니다. 뉴비 질문에 대해 유감스럽게 생각합니다.) 내가 가지고 올 수있는 최선은 다음과 같습니다

    example

    은 그래서으로 재정의 방향에서 "고유"필터 다음과 같습니다 거의 특정 방향과 세포를 제외하고, 작동

    ([Measures].[Total traffic], [Direction].[(All)].[In]) 
    

    내 자신의 필터). "내장"필터와 내 필터의 교차가 필요합니다. 내 직감은 그것이 세포의 본질적인 coords와 평가되고있는 교차하는 [Direction].[(All)].[In]과 관련이 있다는 것이었지만, 먼저 주제를 읽지 않고 내가 필요로하는 것을 알기는 어렵다.

    [편집] 나는 결국 이 추가 쿼리를 발생 적어도 SAS OLAP에

    IIF([Direction].currentMember = [Direction].[(All)].[Out], 
        0, 
        ([Measures].[Total traffic], [Direction].[(All)].[In]) 
    ) 
    

    ..하지만은 기본 데이터 세트 ([IN]에 대한 값을 계산) 할 그래서 결국에는 사용되지 않았다. 당신이 새로운 조치를 보여줄 때마다

    WITH MEMBER [Measures].[Incoming Traffic] AS 
    '([Measures].[Total traffic], [Direction].[(All)].[In])' 
    

    : 당신이 당신의 MDX에 새로운 계산 된 측정 값을 정의하고 다른 측정 값을 사용하도록 말할 수와 함께하지만, 적용된 필터로 시작하기

  • 답변

    7

    보고서에서는 Direction 차원이 전혀 사용되는지 여부에 관계없이 'Direction> In'필터가있는 것처럼 동작합니다.

    그러나 귀하의 경우에는 방향성 차원을 사용하면 우선 순위가 필요합니다. 따라서 상황이 다소 엉망이됩니다. 이 차원을 사용하고있는 경우, 감지해야하고, 그에 따라 행동 할 것이다 :

    WITH MEMBER [Measures].[Incoming Traffic] AS 
    'IIF([Direction].currentMember = [Direction].[(All)].[Out], 
        ([Measures].[Total traffic]), 
        ([Measures].[Total traffic], [Directon].[(All)].[In]) 
    )' 
    

    는 차원이 사용중인 경우 현재 셀이 OUT 사용하는 경우, 우리가 확인을 참조하십시오. 그렇다면 총 트래픽을 그대로 되돌릴 수 있습니다. 그렇지 않다면, 튜플에서 IN을 사용하도록 말할 수 있습니다.

    +0

    들어오는 트래픽 [out] = 0 대신 "([Measures]. [Total traffic])"대신 "0"을 사용했습니다. 고마워요! – Nickolay

    1

    IN/OUT 표시를 위해 총 트래픽 팩트 테이블에 열을 넣어야합니다. & IN & Out 값에 대한 Dim 테이블을 작성하십시오. 그런 다음 IN & Out을 기반으로 데이터를 분석 할 수 있습니다.

    1

    또한 this question을 살펴보세요. 동일한 문제를 설명하고 거기에 다른 답변이 게시되어 있습니다.

    관련 문제