2010-03-17 2 views
0

달성하려는 작업은 매우 단순 해 보이지만 제대로 작동하지 않습니다. 사실은 날짜가있는 주문이며 '월'및 '연도'수준의 일반적인 시간 차원이 있습니다.MDX : 집합을 통한 집계

지난 6 개월 동안의 주문 수를 나열하는 출력을 얻고 싶습니다. 이 같은 총 :

 
Oct 2009 20 
Nov 2009 30 
Dec 2009 25 
Jan 2009 15 
Feb 2010 45 
Mar 2010 5 
Total  140 

내가 3 월 2010 년까지 회원 년 10 월 2009 년 5 세트를 만들 수 있습니다 내가 내 원하는 출력이 부분 얻을 관리 :

 
Oct 2009 20 
Nov 2009 30 
Dec 2009 25 
Jan 2009 15 
Feb 2010 45 
Mar 2010 5 

그냥 내가 얻을 실패를 총계는

입니다. 7백45경1천5백15조5백36억9천1백36만3천2백10

답변

2

당신은

SELECT 
    ... on COLUMNS, 
    VISUALTOTALS (
     {[Month].[Month].[Oct 2009]:[Month].[Month].[Mar 2010] 
     , [Month].[Month].[All] } 
) ON ROWS 
FROM <cube> 
+0

안녕하세요 대런! 죄송합니다. 그러나 이것은 저에게 적합하지 않습니다. 내게 가장 혼란스러운 점은 다음과 같습니다. {COLUMNS, NON EMPTY VisualTotals (계층 적 ({[Customers]. [모든 고객] [미국]. [미국]. [OR]. [Albany] .Children}), "*") ON 판매액 에서 [Sales] selectNON EMPTY Hierarchize ({[고객]. [모든 고객]. [미국]. [어린이], [고객]. [모든 고객]. [미국] [판매량] . [OR]. [Albany] .Children}) ON 행 [Sales] VISUALTOTALS의 유무와 상관없이 동일한 결과가 나옵니다. – TorstenS

+0

왜냐하면 보이는 회원의 모든 자녀를 보여주기 때문입니다. 따라서 "보이지 않는"멤버와 관련된 행 축에는 금액이 없습니다. [고객]. [모든 고객]. [미국] .Children - 당신이 첫 번째 질의가 [알바니]에 대한 금액 만 표시하도록 변경됩니다. ] 수준. –

1

여기 동광 DW 데모 큐브에 대한 하나 개의 가능한 솔루션() 함수 VisualTotals에 모두 배치 한 다음 세트의 모든 부재를 첨가함으로써이를 달성 할 수있다. 검색어는 최근 6 개의 주문 수를 선택하고 날짜 측정 기준에 합계를 추가합니다.

WITH MEMBER [Date].[Calendar].[Last 6 Mth Order Count] AS 
aggregate( 
ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]).Lag(6) 
: ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]) 

) 
SELECT {[Measures].[Order Count]} ON COLUMNS 
, {ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]).Lag(6) 
: ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]) 
,[Date].[Calendar].[Last 6 Mth Order Count]} 
ON ROWS 
FROM [Adventure Works]