2014-09-29 2 views
0

큐브에서 지난 24 시간 데이터를 추출해야합니다. 아래 작성한 MDX 있지만 현재 시간 (시스템 시간)에 따라 데이터를 반환하지 않습니다.MDX - Extract 지난 24 시간 데이터

SELECT 
    [Date].[Calender-Year_Quarter_Month_Date].[Date] ON ROWS 
,{[Measures].[Delay In Mintues]} ON COLUMNS 
FROM 
(
    SELECT 
     { 
      StrToMember 
      ("[Date].[Calender-Year_Quarter_Month_Date].[Date].&[" 
       + 
       Format 
       (
        Now() - 1 
       ,'yyyyMMdd' 
       ) 
      + "]" 
     ) 
     * 
      (
      [Time].[Time-Hour_Time].[Hour].&["+FORMAT(NOW(),"HH")+"] 
      : 
      [Time].[Time-Hour_Time].[Hour].&[23].&[23:59] 
     ) 
     } 
    + 
     { 
      StrToMember 
      ("[Date].[Calender-Year_Quarter_Month_Date].[Date].&[" 
       + 
       Format 
       (
        Now() 
       ,'yyyyMMdd' 
       ) 
      + "]" 
     ) 
     * 
      (
      [Time].[Time-Hour_Time].[Hour].&[0].&[00:00] 
      : 
      [Time].[Time-Hour_Time].[Hour].&["+FORMAT(NOW(),"HH")+"] 
     ) 
     } ON COLUMNS 
    FROM [Delay Reasons] 
); 
+0

왜 'WHERE' 절 대신 하위 쿼리를 사용합니까? – whytheq

+0

은 각 범위의 끝에 '& [00:00]'이 (가) 필요합니까? – whytheq

답변

0

(주의 : 테스트하지)

이 일을합니까?

SELECT 
    [Date].[Calender-Year_Quarter_Month_Date].[Date] ON ROWS 
,{[Measures].[Delay In Mintues]} ON COLUMNS 
FROM [Delay Reasons] 
WHERE 
    { 
     StrToMember 
     ("[Date].[Calender-Year_Quarter_Month_Date].[Date].&[" 
      + 
       Format 
       (
       Now() - 1 
       ,'yyyyMMdd' 
      ) 
      + "]" 
     ) 
     * 
     (
      [Time].[Time-Hour_Time].[Hour].&["+FORMAT(NOW(),"HH")+"] 
     : 
      [Time].[Time-Hour_Time].[Hour].&[23].&[23:59] 
     ) 
    } 
    + 
    { 
     StrToMember 
     ("[Date].[Calender-Year_Quarter_Month_Date].[Date].&[" 
      + 
       Format 
       (
       Now() 
       ,'yyyyMMdd' 
      ) 
      + "]" 
     ) 
     * 
     (
      [Time].[Time-Hour_Time].[Hour].&[0].&[00:00] 
     : 
      StrToMember 
      (
      "[Time].[Time-Hour_Time].[Hour].&[" + Format(Now(),"HH") + "].&[00:00]" 
     ) 
     ) 
    }; 
관련 문제