2012-07-31 3 views
1

SSAS를 사용하여 지난 몇 년 동안 매월 수익을 볼 수있는 큐브를 설계하려고합니다. 나는 월별 매출은 예를 들어, 매달 무엇인지 알아 내려고 노력하고있어 이제SSAS에서 천천히 변화하는 차원

Account Number  MonthlyPayment  Start Date  End Date 
102939    115    01/01/2001  03/31/2001 
102939    75    04/01/2001  NULL 
102940    107    02/01/2001  NULL 

: 나는 다음 표에 결과 유형 2 SCD를 사용하여 수익 팩트 테이블을 구축했습니다

01/01: 115 
02/01: 222 
05/01: 182 

큐브를 만들었지 만 시작일과 연결되어 있기 때문에 특정 달에만 수익이보고됩니다. 모든 링크가 내가 SSIS에서 사실 테이블을 구축 한 후 중지 발견하고 데이터가 올바르게 포맷되면 그것은 케이크 한 조각이 있다고 암시하는 것 같다 할 수있었습니다 때문에

01/01: 115 
02/01: 107 
02/01: 0 
04/01: 75 

은 분명히 내가 모르는 뭔가가있어. MDX 계산 된 측정 값을 작성해야합니까? 그렇다면 어떻게해야합니까? 또는 내가보고 있어야하는 훨씬 더 간단한 것이 있습니다.

모든 조언을 크게 높이세요!

답변

0

사실 테이블에서 사용하지 않더라도 모든 날짜를 포함하는 시간 차원을 추가합니다. SSAS allows you to generate a Time dimension에는 MDX 쿼리에 사용할 수있는 월 열이 포함되어 있습니다.

미안하지만 내가 정의한 문제를 완전히 이해하지 못했습니다. 난 당신이 간단하게 끝날 것

Account Number  PaymentAmount  Payment Date  
102939    115    01/01/2001  
102939    115    02/01/2001  
102939    115    03/01/2001  
102939    75    04/01/2001  
102940    107    02/01/2001  

처럼 무언가로 테이블을 denormalise해야 할 것 생각이 테이블 크기의 비용으로 계산.

+0

시간 차원을 추가했지만 EndDate 열에 연결하는 데 문제가 있습니다. 측정 값에서 날짜를 사용할 수 없기 때문에 MDX 쿼리를 구조화하는 방법을 잘 모르겠습니다. 꽤 MDX에 익숙하지 않아서 어디서부터 시작해야할지 확신합니다. – nickrobison

1

쉬운 호출이 아닙니다.

금액을 계산하기 위해 날짜를 취한 지불 (금액, 시작, 종료) 인 셀 수준 (일명 행 수준)의 새로운 유형을 정의하려고합니다.

OLAP 큐브는 기본 유형 (double, int, booleans ...) 만 모으기 때문에 이러한 종류의 문제를 즉시 해결할 수 있도록 설계되지 않았습니다. 이 시점에서이 작업을 수행하는 공급 업체는 누구인지 알 수 없습니다.

Account Number  MonthlyPayment  Date  
102939    115    01/01/2001 
102939    115    02/01/2001 
102939    115    03/01/2001 
102939    75    04/01/2001 
... 
102940    107    02/01/2001 
102940    107    03/01/2001 
102940    107    04/01/2001 
... 

이 솔루션의 문제는 새 행 (메모리) 어떻게 '새로운'테이블을 생성하는 방법에 비해 원래 행의 수는 다음과 같습니다

표준 방법은 각 달에 금액을 추가하는 것입니다 .

SSAS가 필수가 아니라면이 솔루션을보다 효과적으로 해결할 수있는 파트너를 찾을 수도 있습니다.

+0

SSAS는 프로젝트의 제약으로 인해 필수 항목이므로 권장 사항에 따라 행을 복제 할 수는 있지만 계정 수와 비슷한 구조를 가진 다양한 측정 값의 수를 통해 더 간단한 솔루션을 찾고 싶습니다. , 가능하다면. – nickrobison

+0

여러 달 동안 합계를 얻지 않으려면 many-2-many를 사용해보십시오.하지만이 경로는 위험합니다. 예 : 전체 2001 년 MonthlyPayment의 합계는 115 + 75 + 107 (행은 두 번 계산되지 않음)이됩니다. 여전히 시작/끝 분해를 수행해야합니다. – ic3

관련 문제