3

我有一个多维数据集,它从 4 个事实/暗淡表中提取数据。

  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

CaseRecievedToCaseOpenedOver5CaseReceived将保存在和之间的时间差超过 5 小时的案例数CaseOpened

我猜 " CaseRecievedToCaseOpenedOver5" 和 " CaseClientContactedToCaseClosedOver5" 将是计算成员,但我需要一些帮助来弄清楚如何创建它们。

提前致谢。

4

2 回答 2

2

这看起来是一个使用累积快照类型事实表并计算在 ETL 过程中从管道的一个阶段移动到下一个阶段所花费的时间的好地方。

于 2009-02-10T22:58:25.067 回答
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

如果您将经常使用此成员,请将其创建为多维数据集中的计算成员,如果我没记错的话,在“计算”选项卡上。

于 2009-04-07T22:01:36.230 回答