2009-02-09 88 views
3

我有一個Cube,它從4個事實/暗淡表中繪製數據。MDX計算事件間的時間

  1. FactCaseEvents (EventID,CaseID,TimeID)
  2. DimEvents (EventID, EventName)
  3. DimCases (CaseID,StateID,ClientID)
  4. DimTime (TimeID,FullDate)

活動將是:CaseReceived,CaseOpened,CaseClientContacted,CaseClosed

DimTime適用於每一個小時的條目。

我想編寫一個MDX語句,將讓我2列:「CaseRecievedToCaseOpenedOver5」和「CaseClientContactedToCaseClosedOver5

CaseRecievedToCaseOpenedOver5人會認爲有5個多小時的時間差的時間CaseReceived之間病例數和CaseOpened

我猜「CaseRecievedToCaseOpenedOver5」和「CaseClientContactedToCaseClosedOver5」會計算成員,但我需要一些幫助來計算如何創建它們。

在此先感謝。

回答

2

這看起來像使用一個累積快照類型事實表和計算才能擺脫流水線的一個階段,在ETL過程的下一時間的好地方。

+0

感謝您的評論..我會研究這一點。 – madcolor 2009-02-10 23:09:18

2

用於查詢的AdventureWorks(DateDiff的工作在MDX):

WITH 
MEMBER Measures.NumDays AS 
'iif(ISEMPTY(([Delivery Date].[Date].CurrentMember 
,[Ship Date].[Date].CurrentMember 
,Measures.[Order Count])) 
,null 
, Datediff("d",[Ship Date].[Date].CurrentMember.Name 
,[Delivery Date].[Date].CurrentMember.Name))' 
SELECT 
NON EMPTY {[Ship Date].[Date].&[63] 
:[Ship Date].[Date].&[92]} ON COLUMNS, 
NON EMPTY {[Delivery Date].[Date].&[63] 
:[Delivery Date].[Date].&[92]} 
* {[Measures].[NumDays] 
, [Measures].[Order Count]} ON ROWS 
FROM [Adventure Works] 
來自

:如果您要使用這個成員不少,創建爲多維數據集計算成員http://www.mombu.com/microsoft/sql-server-olap/t-can-i-have-datediff-in-mdx-265763.html

,在計算選項卡上,如果我沒有記錯的話。

+0

殺手..謝謝。 – madcolor 2009-04-08 02:11:39