2014-11-07 2 views
1

처리 후 SSAS 큐브에서 "DEC-2014"와 같은 시간 차원 항목을 제거 할 수 있는지 궁금합니다.SSAS에서 시간 차원 항목을 수동으로 제거 할 수 있습니까?

Oracle 조회 테이블은 시간 차원 값을 제공하지만 각 해당 월의 데이터는 아직 제공되지 않을 수 있습니다. 처리 후 Time 차원을 수동으로 제거하고 원본 Oracle 테이블에서 삭제하지 않으려합니다.

Time 
-> All Time 
    -> 2014 
     -> Q1 2014 
      -> JAN-2014 
      -> FEB-2014 
      -> MAR-2014 
     -> Q2 2014 
      -> APR-2014 
      -> MAY-2014 
      -> JUN-2014 
     -> Q3 2014 
      -> JUL-2014 
      -> AUG-2014 
      -> SEP-2014 
     -> Q4 2014 
      -> OCT-2014 
      -> NOV-2014 
      -> DEC-2014 (Would like to delete this entry) 
+1

어쩌면 삭제하는 대신 SSAS의 보안 역할에서 차원 데이터를 필터링하는 Google을 검색하는 대신 더 쉬운 선택일지도 몰라. – mxix

답변

0

프로젝트의 데이터 소스보기 (DSV)에서이를 수행하십시오. 데이터 소스 테이블이 현재 테이블로 전달되는 경우 DSV에서 날짜 차원 테이블을 마우스 오른쪽 버튼으로 클릭하고 "Replace Table> New Named Query ..."를 선택하고 where 절을 다음과 같이 설정하십시오.

WHERE YEAR(DateField)*100 + MONTH(DateField) <= YEAR(GETDATE())*100 + MONTH(GETDATE()) 

이번 달 이후 모든 달이 날짜 측정 기준에 포함되지 않습니다.

사실 날짜 테이블에 외래 키가있는 팩트 테이블의 제외 월에 값이있는 경우 키를 찾을 수 없을 때 처리 중 오류가 발생합니다. 나는 당신의 사실 테이블 ETL을 변경하여이 달을 지나서 행을 수락하지 않고이 가능성을 설명합니다.

편집 : 또 다른 가능한 솔루션입니다 : 당신이 잘못된 개월 동안 사실 테이블의 모든 레코드가없는 경우

WHERE DateKey BETWEEN (SELECT MIN(DateKey) From FactTable) AND (SELECT MAX(DateKey) From FactTable) 

이 하나가 작동합니다.

관련 문제