반 첨가 측정 문제 - 매월 합계 스냅 샷이지만 몇 달에 걸쳐 있지 않습니다.
문제
SQL에 능숙하지만 MDX에 익숙하지 않기 때문에이 주위에 머리를 잡는 데 어려움이 있습니다.
매월 계정 잔액의 스냅 샷이 포함 된 사실 테이블이 있습니다. 나는 반지발 측정으로 잔액을 롤업해야한다. 그러나 모든 계정의 잔액을 추가하여 매달 모든 잔액을 개별적으로 요약해야하므로 "마지막"개념도 저에게도 효과가 없습니다. 예를 들어 사실이 다음과 같이 보이는 경우 :
Date AccountNo Balance
2009-01-31 1111 $100
2009-01-31 2222 $100
2009-01-31 4444 $100
2009-01-31 5555 $100
2009-02-28 1111 $100
2009-02-28 2222 $200
2009-02-28 3333 $500
2009-02-28 5555 $50
etc.
또한 계정을 주요 범주 / 사소한 범주 / 계정 계층으로 그룹화하는 계정 차원이 있습니다. 모든 계정에서 매월 잔액을 요약하는 이와 같은 출력이 필요합니다.
Month Total
January 09 $400
February 09 $850
그리고 계정 유형별로 분해되어 :
Month Total
January 09 $400
Type 1 $200
1111 $100
2222 $100
Type 2 $200
February 09 $850
Type 1 $300
Type 2 $550
그러나 잔액은 몇 개월, 분기 또는 몇 년에 걸쳐 합의하지 않아야합니다. 왜냐하면 그것은 의미가없고 두 번 계산 될 것입니다. 더 이상 시간 간격은 기간의 마감을 보여 주어야합니다.
Quarter WRONG Correct
Q1 $1250 $850 // should be the sum of balances for the *last* month in Q1
Type 1 $500 $300
Type 2 $759 $550
"LastNonempty"집계를 사용하는 경우, 지난 달의 계정 잔액의 합이 아니라 한 달 동안 문자 그대로의 마지막 계정 행 만 얻는 것 같습니다. 마치 그 달의 총계가 해당 달에 존재하는 하나의 임의의 계정에서 얻은 잔액을 보여주지 않고 총계가 아닌 것처럼 보입니다. (나는 그것이 실제로 무작위가 아니라고 확신합니다. 아마도 스토리지 순서 나 무언가를 기준으로 하나를 선택하고있을 것입니다)
나는 단지 단순한 일을하고 있다고 확신합니다.
해결책
나는 이것을 해결했다고 생각한다 : 잔액을 가진 나의 소스 데이터는 매우 희박했다 - 0이 아닌 잔액에 대해서만 행이 있었고, 균형이 0 일 때 계정에 대한 행이 없었다. 그로 인해 모든 것이 나사로 만들었습니다 (부품 수가있는 곳에서 재고로 상상하고 계산은 종종 0이지만 0 일 때는 팩트 테이블에서 행이 누락됩니다).
데이터 소스에서 모든 추가 행을 제로 잔액으로 "다시 추가"할 수있는 뷰를 만들 수 있었고, 그 후 ClosingPeriod () 함수는 예상대로 작동하기 시작했습니다.