2012-12-12 1 views
1

SSAS에서 다음 상황을 모델링하려고합니다. 나는 3 차원 있습니다
고객
ID
1
2
주어진 기간 동안 마지막 고객 상태를 선택/모델하는 방법 SSAS

에서 상태
ID 이름
1 status_1
2 status_2

날짜
day_date을
2012-01-01
2012-01-02
... 01 235,

그리고 FactCustomerStatuses 테이블
CUSTOMER_ID, status_id, day_date가
1 2012-01-01
1 2 2012-03-01
1 2012-05-01

이것을 가지고, 나는이 치수와 계수를 가진 간단한 큐브를 만들었습니다. 이제 해당 날짜의 모든 고객에 대한 최신 상태와 관련하여 주어진 날짜에 고객 수를 표시하는 보고서가 필요합니다. 예를 들어 2012-02-01에 대한 보고서를 작성했는데 status_1에 1 고객, status_2에 0 고객이 있습니다. 2012-04-01에 대한 보고서를 작성할 때 status_1에 고객이없고 status_2에 고객이 1 명 있습니다. 이 고객은 status_1 등으로 다시 마이그레이션됩니다. 데이터 모델 또는 MDX로 ​​작업을 수행하려면 어떻게해야합니까? 모든 고객에 대해 최신 상태의 스냅 샷을 만들 수 있지만 고객 데이터베이스의 현재 상태 만 제공합니다. 그러나 나는 그것을 어제의 주 (州)와 비교하고 싶다. 아무도 단서를 줄 수 있습니까? 도움을 주셔서 감사합니다.

아래의 의견에 따라

답변

0

개정 대답은 내가 원하는 아니라고이 올렉산드르

WITH MEMBER Measures.CountCustomer AS DistinctCount([Customer].[Customer].Children) 
SELECT NON EMPTY { Measures.CountCustomer } ON COLUMNS , 
     [Status].[Status].Children ON ROWS 
FROM 
( 
    SELECT null:[status Date].[Status Day Date].&[2012-03-01T00:00:00] ON COLUMNS 
    FROM TestStatus 
) 
+0

을보십시오. 주어진 쿼리에서 0 대신에 주어진 날짜에 대한 최신 상태를 조회하고 싶습니다. – Oleksandr

+0

질문에 "나는 2012-02-01에 대한 보고서를 작성하고 status_1에 1 고객, status_2에 0 고객이 있습니다."를보고 싶다고 말합니다. status_2 섹션의 0 고객이 잘못 되었습니까? 실제 예상 보고서 결과를 진술하기 위해 질문을 수정할 수 있습니까? 그리고 당신이 그것을 풀 수 있도록 도와 드리겠습니다. –

+0

아마도 전반적인 아이디어에 대한 제 설명은 그리 좋지 않습니다. 그러나 사실 테이블의 날짜에주의를 기울이는 경우 첫 번째 날짜는 2012-01-01이며이 고객의 다음 날짜는 2012-03-01입니다. 이제 사실 테이블의 날짜 사이에있는 2012-02-01에 대한 보고서를 실행합니다. 실제로 데이터베이스에 고객이 한 명 있지만 2012-02-01의 상태는 무엇입니까? status_1 및 status_2에 대한 쿼리는 0을 반환하지만 2012-02-01의 최신 상태는 status_1입니다. 그래서 저는 과거에서 2012-02-01부터 찾아보고이 고객의 최신 상태를 파악하고 싶습니다. – Oleksandr

관련 문제