2011-07-27 5 views
1

여러 쿼리의 결과를 합산해야합니다.SSAS에서 여러 MDX 쿼리 요약하기

는 내가 가지고 각 쿼리는 내가 결합 할/합을 그 구성원 다수의 MDX를 통해 할 수 있어야합니다

을 (날짜 범위를 계산하는) 멤버를 정의한 것입니다 도전은

WITH Member [M1] AS Sum(DateRange, Measure) 

SELECT [M1] 

FROM [Cube] 

WHERE {[x].&[y]} 



WITH Member [M1] AS Sum(Different DateRange, Measure) 

SELECT [M1] 

FROM [Cube] 

WHERE {[z].&[q]} 

각각

를 조회 쿼리는 다른 기준에 따라 동일한 멤버를 선택합니다. 내가이 일을 생각할 수

유일한 방법은 UNION과 합보다 ([M1])하지만 그

MDX

에 UPDATE 가능한 방법을 모르고 - icCube의 질문에 대한 응답에서, 여기에 내가 필요한 이유입니다 각각의 쿼리에 대해 별도의 WHERE 절이 있어야합니다.

각 슬라이스의 결과를 집계해야하므로 각 쿼리마다 별도의 WHERE 섹션이 필요합니다. 내 조각은 n 개의 차원으로 정의됩니다. 나는 각 슬라이스에 대해 동적으로 사용자 구성 입력을 기반으로 mdx 쿼리를 내 보낸다 (그리고 내 WHERE 절을 동적으로 구성하여 사용자 기본 설정별로 필터링). 사용자는 겹치는 슬라이스를 구성 할 수 있습니다 (이것들은 합쳐야합니다). 그런 다음이 슬라이스 행 수를 보고서에 결합해야합니다. 내가하고있는 방법은 MDX 쿼리와 함께 문자열을 보고서에 전달하는 것입니다. 하지만 하나의 실행 가능한 문자열에 여러 개의 쿼리를 가져 오는 방법을 생각할 수 없기 때문에 (또는 쿼리의 수를 알 수는 없습니다.)이 방법은 더 이상 가능하지 않습니다. (합치거나 결합하는 방법이없는 한)

내가 지금이 달성 생각할 수

있는 유일한 방법은, 테이블을 준비 에 모든 쿼리를 반복합니다 추가 배치 단계, 공정 그들 (사용 Adomd.net) 함께하고 내가 그들을 집계 할 수 있습니다 SQL sum (..)을 사용하여 보고서에 추가 할 수 있습니다.이 방법의 가장 큰 단점은 유지 관리 할 추가 시스템과 보고서의 데이터가 오래 될 가능성입니다.

답변

3

이것이 보이는 것인지 확실하지 않습니다.

+0

감사합니다,하지만 난 각 쿼리 –

+0

확인에 대한 부분은 WHERE 다른이 필요합니다 - 당신이 이유를 설명 할 수 있습니까? - 해결책을 찾으면 알려주십시오. – ic3

+0

확실하게, 나는 그것을 해결하는 방법에 대한 설명과 나의 가장 좋은 추측으로 나의 질문을 업데이트했다. 희망이 있으리라 .. –

0

... 내가 MDX 두 가지 선택의 결과를 추가하는 어떤 방법을 모르는

WITH Member [M1] AS Sum(Different DateRange, ([z].&[q],Measure)) + 
        Sum(DateRange, ([x].&[y],Measure)) 

SELECT [M1] 

FROM [Cube] 

또는

WITH Member [M1] AS Sum(Different DateRange * {[z].&[q]}, Measure) + 
        Sum(DateRange * {[x].&[y]}, Measure) 

SELECT [M1] 

FROM [Cube] 

을 보내고 난 당신이 Aggregate()하지 합계가 필요합니다 생각합니다.

0

는이 방법에 하위 큐브를 사용하여 MDX에서 UNION 동작을 구현할 수 :

Select 
{...} On Columns, 
{...} On Rows 
From (
    Select 
      { 
       {Dimension1.Level.Members * Dimension2.&[1] * Dimension3.&[2]}, 
       {Dimension1.&[X] * Dimension2.Members * Dimension3.&[5]} 
      } On Columns 
    From [Cube] 
    )