0

따라서 판매주기 테이블 (또는 팩트 스냅 샷 테이블 누적)과 매우 다른 여러 날짜 키 열 (판매 날짜 , 환불 날짜 등). 비어있는 판매 날짜 키 열의 합계는 [판매 수]이고 비어 있지 않은 비어있는 환불 날짜 키 열의 합계는 [환급 수]입니다. 각 날짜 열에 대해 다른 조치를 취했습니다. 날짜 키 열은 다른 날짜 키 차원과 관련됩니다. 판매일 차원과 환불 된 날짜 차원은 역할 재생 차원이며 모두 동일한 DimDate 테이블을 기반으로합니다. 다른 비 날짜 기반 차원도 있지만,이 예제에서는 storeType (소매, 전자 상거래 등)에 대한 또 다른 차원이 더 있습니다.동일한 누적 팩트 테이블의 개별 및 독립 카운트

큐브를 탐색 할 때 대부분의 사용자는 엑셀을 통해 큐브를 탐색하고 탐색 할 것입니다.) [Number of Sales] 및 [Number of Refunds]를 열 섹션으로 드래그 한 다음 행 섹션에서 StoreType 차원을 드래그하여 데이터를 올바르게 표시 할 수 있습니다 등 :

 

       Number of Sales Number of Refunds 
---------------------------------------------------- 
Retail   10    8 
eCommerce  5     2 
 

날짜 필터를 적용하지 않았기 때문에 모든 것이 표시되므로 괜찮습니다. Fact 테이블에 데이터를 기증했습니다. 실제로 숫자가 맞습니다.

하지만 [판매 수] 및 [환급 수]에 동일한 날짜 필터를 적용하여 두 치수를 모두 필터 영역으로 드래그하고 양쪽 모두에 동일한 날짜 필터를 적용합니다. 물론, 숫자는 모두 열에 대해 모두 동일 :

 

       Number of Sales Number of Refunds 
---------------------------------------------------- 
Retail   5     4 
eCommerce  5     4 
 

.. 내가 효과적으로 두쪽으로 날짜 차원을 한 날짜를 적용하여 생각하기 때문에, 그 것 (행의 동일한 세트까지 필터링하고 그들은 같은 테이블에서 왔습니다). 팩트 테이블에서 개별 행을 쿼리하고 서로 다른 값을 가질 수 있기 때문에 이것이 틀렸다는 것을 알고 있습니다.

기본적으로 원하는 것은 두 열을 함께 표시하는 것이지만 실제로는 공통점이 없습니다. 2011 년 회계 연도의 모든 판매를 표시하고 2011 회계 연도의 모든 환불 내역을 표시하는 등 각 열에 2 개의 다른 날짜 필터를 사용할 수도 있습니다. 이는 사용자가 완전히 검색 할 수 있기 때문에 조치가 필요하지 않고 사용할 수 있도록 만들어야합니다. 복잡한 MDX 쿼리를 수행하십시오.

나는 다른 팩트 테이블을 만들어 트랜잭션 팩트 테이블에 같은 데이터를 저장할 수 있다고 생각한다. 그런 다음 개별적으로 계산할 수있다. 그러나 두 개의 팩트 테이블을 두 개 이상 가지고 동일한 것을 계산하는 것은 의미가 없다. .

어떻게하면 좋을까요? 도움!!

답변

0

집계 항목에 사례 문을 적용해야 할 수도 있습니다. 이 줄의 어떤 것 :

SELECT StoreType 
    , SUM(CASE WHEN SalesCol IS NOT NULL THEN 1 ELSE NULL END) AS NumSales 
    , SUM(CASE WHEN RefundCol IS NOT NULL THEN 1 ELSE NULL END) AS NumRefunds 
FROM FactTable 
WHERE SaleDate BETWEEN Date1 AND Date2 
GROUP BY 1 
관련 문제