문제
MDX에서 계산 된 멤버를 정의해야합니다 (이것은 SAS OLAP이지만 어쨌든 다른 OLAP 구현으로 일하는 사람들의 답변에 감사드립니다).
새 측정 값은 추가 필터 조건을 적용하여 기존 측정에서 계산해야합니다. 예를 들어 더 명확해질 것이라고 생각합니다.
- 기존 측정 : "총 트래픽"
- 기존 차원 : "방향"( "in"또는 "out")
- 계산 된 멤버 "들어오는 트래픽"을 만들어야합니다. 추가 필터 (Direction = "in")와 "총 트래픽"과 같습니다.
문제는 내가 MDX를 모르고 매우 빡빡한 일정에 있다는 것입니다 (초보자 질문에 대해 죄송합니다). 내가 생각해 낼 수있는 최선은 다음과 같습니다.
([Measures].[Total traffic], [Direction].[(All)].[In])
특정 방향을 가진 셀을 제외하고는 거의 작동합니다.
따라서 방향의 "고유"필터가 내 필터로 무시되는 것처럼 보입니다). "고유"필터와 내 자신의 교차점이 필요합니다. 내 직감은 교차와 관련이 있다는 것입니다. [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을 기반으로 데이터를 분석 할 수 있습니다.
또한 살펴보십시오 이 질문, 그것은 동일한 문제를 설명하고 거기에 다른 답변이 게시되어 있습니다.