조직에서 SQL Server (결국 SSAS의 큐브)에 데이터웨어 하우스를 구축해야 할 필요가있는 사실 테이블은 판매 목표/예산 데이터 용입니다.학부모의 측정 값이 어린이 측정 값의 합계보다 작은 희석 된 계층 구조가있는 판매 목표 (일명 예산) 사실
날짜까지, 나는이 문제의 반대편 만 처리했습니다. 즉, 자식 값의 합계가 부모 값의 합보다 작습니다.
여기에 질문은 부모의 가치의 n 배의 합인 자녀의 가치의 합계를 모델화하는 방법입니다.
다음 표는 내가이 문제를 설명 할 수있는 가장 좋은 방법입니다. 아래에 주어진
모든 직원은 판매 대상/예산 금액이 있습니다
EmployeeId | EmployeeBudgetAmount$
-----------+----------------------
Emp1 | 100
Emp2 | 200
Emp3 | 500
직원 수준에서 위의 예산 값이 관행으로 분할 (이민 법적 관행에 대한 조직의 용어에 해당, 기업 등) :
EmployeeId | PracticeTypeId | PracticeId | EmployeePracticeBudgetAmount$
Emp1 | PracType1 | Prac1 | 20
Emp1 | PracType1 | Prac2 | 80
Emp1 | PracType2 | Prac10 | 40
Emp1 | PracType2 | Prac20 | 60
Emp1 | PracType3 | Prac100 | 30
Emp1 | PracType3 | Prac200 | 70
Emp2 | PracType1 | Prac1 | 160
Emp2 | PracType1 | Prac2 | 40
Emp2 | PracType2 | Prac10 | 80
Emp2 | PracType2 | Prac20 | 120
Emp2 | PracType3 | Prac100 | 140
Emp2 | PracType3 | Prac200 | 60
Emp3 | PracType1 | Prac1 | 0
Emp3 | PracType1 | Prac2 | 500
Emp3 | PracType2 | Prac10 | 100
Emp3 | PracType2 | Prac20 | 400
Emp3 | PracType3 | Prac100 | 200
Emp3 | PracType3 | Prac200 | 300
직원의 총 예산은 해당 직원의 모든 유형의 예산에서 충족됩니다.
Emp1's total budget = SUM(Emp1's practice budget) for PracType1
Emp1's total budget = SUM(Emp1's practice budget) for PracType2
Emp1's total budget = SUM(Emp1's practice budget) for PracType3
... 등등.
사실 테이블에 연습 예산 테이블 (위의 두 번째 테이블)을 사용하는 경우 직원의 모든 EmployeePracticeBudgetAmount를 집계하면 3 (사용 가능한 연습 유형 수)에 직원의 예산을 곱한 예산 금액이 산출됩니다.
이것을 사실 테이블로 모델링하는 방법에 대한 지침이나 아이디어가 있습니까?
미리 감사드립니다.
참고 : 예산 수준을 요약해야하는 직원 수준보다 높은 회계 연도 및 회계 연도와 같은 다른 차원이 있습니다. 간결한 이유로 위의 질문에 제시하지 않았습니다.
'EmployeeBudgetAmount $'값이 실제로 연습 유형 * 당 예산 금액 * 인 경우 필요한 위치에 있습니다. 그렇지 않으면 그렇지 않습니다.그런 다음 두 번째 표의 모든 레코드에 대해 예산 값을 분산시키는 방법을 변경하면됩니다. 당신이하는 일은 당신에게 달려 있습니다. 내가 놓친 게 있니? –
@ R. 리차드, 귀하의 회신에 감사드립니다. EmployeeBudgetAmount $는 직원 당 예산 금액과 연습 유형별 예산 금액입니다. 그러나 내가 질문에 언급했듯이, EmployeePracticeBudgetAmount $를 사실 테이블로 사용하는 두 번째 테이블을 사용하면 직원 수준에서 SUM을 수행하면 직원 예산이 예산보다 더 많이 나타납니다. 예를 들어 Emp1의 두 번째 표에 따른 예산은 100이 아니라 300 일 것입니다 (100은 올바른 금액 임). 편집 : 또한, 첫 번째와 두 번째 테이블은 실제 OLTP 테이블, 아무것도 데이터웨어 하우스 자체와 관련이 없습니다. – dakaujunk
'EmployeeBudgetAmount $ '는 직원 1 인당 예산 금액이고 또한 연습 유형별 예산 금액입니다. 어떻게 둘 다 될 수 있습니까? 바로 지금, 그것은 나중에입니다. 첫 번째 테이블에 나열한 것과 같은 번호를 얻으려면 두 번째 테이블에서'EmployeeId'와'PracticeTypeId'를 모두 사용하십시오. Emp1은 연습 유형 당 100 *을 갖습니다. –