문제

MDX에서 계산 된 멤버를 정의해야합니다 (이것은 SAS OLAP이지만 어쨌든 다른 OLAP 구현으로 일하는 사람들의 답변에 감사드립니다).

새 측정 값은 추가 필터 조건을 적용하여 기존 측정에서 계산해야합니다. 예를 들어 더 명확해질 것이라고 생각합니다.

  • 기존 측정 : "총 트래픽"
  • 기존 차원 : "방향"( "in"또는 "out")
  • 계산 된 멤버 "들어오는 트래픽"을 만들어야합니다. 추가 필터 (Direction = "in")와 "총 트래픽"과 같습니다.

문제는 내가 MDX를 모르고 매우 빡빡한 일정에 있다는 것입니다 (초보자 질문에 대해 죄송합니다). 내가 생각해 낼 수있는 최선은 다음과 같습니다.

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

특정 방향을 가진 셀을 제외하고는 거의 작동합니다.

example

따라서 방향의 "고유"필터가 내 필터로 무시되는 것처럼 보입니다). "고유"필터와 내 자신의 교차점이 필요합니다. 내 직감은 교차와 관련이 있다는 것입니다. [Direction].[(All)].[In] 세포의 본질적인 코디가 평가되고 있지만, 주제에 대해 먼저 읽지 않고 필요한 것을 알기가 어렵습니다 :)

편집] 나는 끝났다

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

.. 그러나 적어도 SAS OLAP에서는 기본 데이터 세트에 대한 추가 쿼리가 ([in]의 값을 계산하기 위해)를 수행하게되므로 결국 사용하지 않았습니다.

도움이 되었습니까?

해결책

우선, MDX에서 새로운 계산 된 측정 값을 정의하고 다른 척도의 값을 사용하지만 필터를 적용하도록 지시 할 수 있습니다.

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

보고서에 새 측정 값을 표시 할 때마다 방향 치수가 전혀 사용되는지 여부에 관계없이 '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 & Out 값에 대한 희미한 테이블을 작성해야한다고 생각합니다. 그런 다음 In & Out을 기반으로 데이터를 분석 할 수 있습니다.

또한 살펴보십시오 이 질문, 그것은 동일한 문제를 설명하고 거기에 다른 답변이 게시되어 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top