본문 바로가기

BI, DB, DW/Analysis Services

원단위(원/만원/억원) 차원 계산 멤버 생성하기

큐브에서 특정 금액을 원단위로 끊어서 조회하고자 할 때, 정석대로라면 팩트 테이블에 특정 원단위(만원, 억원 등)에 해당하는 금액을 나타내는 컬럼을 추가해야겠지만, 이런 작업을 계산 멤버를 사용해서 수행할 수도 있다 :



1. DSV에 테이블을 추가한다.

실제 물리적 테이블을 생성할 필요도 없다. 다음과 같은 명명된 쿼리를 사용해도 된다 :

SELECT   '1원' AS UNIT



2. 차원을 추가한다.

1.에서 추가한 테이블을 가지고 차원을 만든다. 위의 경우라면 '1원'이라는 멤버 하나만 나타나도록 만들면 된다.



3. 큐브에 차원을 추가한다.

2.에서 생성된 차원을 큐브에 추가한다. 이 차원은 차원 용도를 설정할 필요가 없다. (측정값 그룹과 특정 키를 연결해 줄 필요가 없다는 뜻)



4. 계산 멤버를 추가한다.

큐브 편집기의 계산 탭에서 원하는 원단위 멤버(만원, 억원...)를 추가한다.
부모 계층을 3.에서 추가한 차원의 계층으로 설정한다.
그런 후 계산 멤버의 식('만원'이라고 가정하면)은 다음과 같이 작성한다 :

iif(([Measures].CurrentMember.name = "금액"),
[원단위].[원단위].&[1원]/10000, [원단위].[원단위].&[1원])
측정값이 "금액"인지 확인하는 것은, "건수"와 같은 다른 측정값 항목이 있을 경우
10,000으로 나누지 않고 그대로 표시해주기 위해서이다.



5. 원하는 계산 멤버를 계속 추가한다 ...

큐브를 처리하고 나면 다음과 같은 데이터를 얻을 수 있을 것이다 :

사용자 삽입 이미지


* 주의사항 : 금액의 비율 등을 계산하는 다른 계산 멤버가 더 있을 경우, 이 계산 멤버들을 상위에 두어서 계산 순위를 높게 해주어야 의도한대로의 계산 결과를 얻을 수 있을 것이다.