2014-11-03 4 views
1

저는 '판매'척도가있는 큐브를 가지고 있습니다. 여기에 매일 판매 단위 수가 있습니다. 시간 차원에는 '연도> 주> 일'이 있습니다.mdx 마침표의 첫 번째 값

계산 된 입력란에 비어있는 판매 기간이있는 기간의 첫 번째 날과 마지막 날의 판매가 있어야합니다. 나는 OPENINGPERIOD와 CLOSINGPERIOD를 시도했지만 월요일과 일요일에만 일주일 동안 돌아온다. 문제는 때때로 월요일이 공휴일이며 일요일은 항상 공휴일이며 공허한 데이터를 얻는다는 것이다. 기간의 마지막 날에 대한 내 예는 다음과 같습니다

WITH 
    MEMBER 
    [Measures].[sales end] AS 
     '((CLOSINGPERIOD([Time.Weeks].[Day],[Time.Weeks].CurrentMember) 
     , [Measures].[sales]))' 
SELECT 
    {[Measures].[sales], [Measures].[sales end]} ON COLUMNS, 
NON EMPTY 
    ({[Time.Weeks].[Week].Members}) ON ROWS 
FROM [cubSales] 

내가 그 기간에 비어 있지 않은 매출 마지막 날 얻을 필요가 ... 그것은 금요일해야하지만 금요일이 공휴일 인 경우 목요일해야합니다. .. 측정 판매에 대한 가치가있는 주 마지막 날을 의미합니다.

답변

0

쉬운 해결책은 시간 차원에서 공휴일을 생략하는 것일 수 있습니다.

+0

덕분에 확인을 작동하는 것 같다! 우리가 여러 점포를 가지고 하루가 휴일 일 수도 있지만 나머지 시간은 휴일이 아니기 때문에 이것은 불가능합니다. – jGofio

0

몬드리안에게는 휴일에 대한 개념이 없습니다. 내장 된 공휴일 목록을 가진 내 자신의 MDX 함수를 구현할 것입니다. 다른 나라의 다른 휴일을 지원할 수있는 유연한 접근 방식입니다.

+0

안녕하세요, 내가 정말로 찾고있는 것은 매출 측정을위한 null 값이 아닌 기간의 첫 번째이자 마지막 날입니다. 따라서 휴일 캘린더를 확인하거나 null 값이 아닌지 찾아 볼 수 있습니다. CLOSINGPERIOD 함수를 사용자 정의하는 것에 대해 이야기하고 있다고 생각합니다. [Time.Weeks] .CurrentMember 및 판매 측정 값이 필요합니다. 그러나 그 날의 측정 값에 액세스하는 방법을 알지 못합니다. ... 나에게 초기 팁을 알려주시겠습니까 ?? – jGofio

0

우리의 큐브에서 테스트하고 (다만 공휴일에 대해 아무 말도하지 않습니다!)

SELECT 
    { 
    [Measures].[sales] 
    } ON COLUMNS 
,NON EMPTY 
    Generate 
    (
     [Time.Weeks].MEMBERS 
    ,Tail 
     (
     NonEmpty 
     (
      [Time.Weeks].CurrentMember * [Time.Weeks].[Day].MEMBERS //<<I think .members is generally default but should do the same thing if we are explicit 
     ,[Measures].[sales] 
     ) 
    ) 
    ) ON ROWS 
FROM [cubSales]; 
+0

안녕하세요, 감사합니다. 나는 Pentaho 5.1을 사용하고 있는데, JPivot에서 쿼리를 실행하려고하면 다음과 같은 메시지가 나타납니다. _Mondrian Error : ' * '_과 일치하는 함수가 없습니다. Pentaho 5.1도 사용하고 있습니까 ?? 무엇이 문제 일 수 있습니까? – jGofio

+0

확실하지 않습니다 - SQL Server Management Studio의 Adventure Works에 대해 위 테스트를 마쳤으므로 유효한 MDX입니다. 이걸 몬드리안의 방언으로 번역해야 할 것 같네요. 우리는 피라미드를 사용하지만 MDX의 특별한 맛이 아닙니다. 현재는 T-SQL 함수 'OPENQUERY'를 사용하여 SQL 저장 프로 시저에서 '표준 MDX'를 사용합니다. '[Day]'뒤에'.members'를 추가하려고 시도했지만 - 나는 대답을 편집했습니다 ... – whytheq

관련 문제