2014-12-03 6 views
1

SSAS에서 팩트 테이블의 두 열을 기반으로 팩트 테이블과 차원을 관련시키는 방법이 있습니까?SSAS - 팩트 테이블의 두 열을 기반으로 팩트 테이블과 차원을 관련시키는 방법이 있습니까?

위치 (차원)와 판매 (사실)의 두 테이블이 있습니다. 위치 측정 기준에는 '상태'라는 한 개의 열이 있습니다. Sales 테이블에는 "saleAmount", "customerState"및 "billingState"의 세 가지 열이 있습니다. 왜냐하면 고객이 캘리포니아에있을 수 있지만 뉴욕에있는 회사 나 지사에 청구하기를 원하기 때문입니다. 우리가 캘리포니아의 모든 판매를보고 싶은 것처럼 SQL에서

, 우리는 우리의 SQL 쿼리를 쓰기 :

select sum(saleAmount) from Sales where customerState = 'California' or billingState = 'California' 

내 큐브를 만들 때 SSDT에서이 작업을 수행 할 수있는 방법이 있나요 내가 '때 너무 m Excel을 최종 사용자 도구로 사용하고 Location 차원과 salesAmount 측정 값에서 state 특성을 선택하면 salesAmount는 customerState 또는 billingState를 기반으로합니까? (여기서는 하나의 측정 기준이 customerState를 기반으로하고 다른 측정 기준이 billingState를 기준으로 한 차원에서 역할을 수행하고 싶지 않습니다. 두 측정 항목을 한 번에 일치시키는 것이 좋습니다.)

+0

이것은 하나의 사실이 두 개의 다른 상태를 가질 수 있음을 의미합니다. 이런 일이 생길 때 어떻게 감추고 있습니까? 하나의 사실은 모든 주를 볼 때 한 번만 계산된다는 사실을 알고 있습니까? –

답변

0

생각하면 되겠지만 다음을 수행하여 원하는 것을 얻을 수 있습니다.

사실 테이블에 대한 뷰는 customerState와 관련된 사실과 billingState와 관련된 사실을 결합한 것입니다. 즉,보기에는 1 개의 State 컬럼 만 있고, 사실의 값이 customerState 및 billingState에 다른 경우 뷰에 두 개의 행이 있습니다.

표 대신보기를 사용하여 큐브의 측정 값 그룹을 채 웁니다.

팩트보기의 단일 상태 열에있는 위치 차원에 측정 값 그룹을 연결하십시오.

작성자는 하나의 사실이 두 개의 다른 상태에있는 상태를 롤업 할 때 사실을 중복 계산합니다.

+0

중복 카운팅 문제를 해결할 수있는 방법이 있습니까 (Many-To-Many 관계와 비슷한 방식)? 모든 주를보고 있거나 위치 측정 기준을 선택하지 않으면 salesAmount를 두 배로 늘리지 않아야합니다. – msandler