我有一个Cube,它从4个事实/暗淡表中提取数据。
FactCaseEvents (EventID,CaseID,TimeID)
DimEvents (EventID, EventName)
DimCases (CaseID,StateID,ClientID)
DimTime (TimeID,FullDate)
事件将是:CaseReceived,CaseOpened,CaseClientContacted,CaseClosed
DimTime每小时都有一个条目。
我想写一个MDX语句,它会给我2列:“CaseRecievedToCaseOpenedOver5
”和“CaseClientContactedToCaseClosedOver5
”
CaseRecievedToCaseOpenedOver5
会保留CaseReceived
和CaseOpened
之间时间差超过5小时的案例数。
我猜测“CaseRecievedToCaseOpenedOver5
”和“CaseClientContactedToCaseClosedOver5
”将是计算成员,但我需要一些帮助来确定如何创建它们。
提前致谢。
答案 0 :(得分:2)
这看起来是一个使用累积快照类型事实表的好地方,并计算从ETL流程中的管道的一个阶段移动到下一个阶段所需的时间。
答案 1 :(得分: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
如果您将要使用此成员,请在计算选项卡上将其创建为多维数据集中的计算成员,如果我没记错的话。