Domanda

Ho un cubo, che trae i suoi dati da 4 dei fatti / tavoli dim.

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

Eventi sarebbero: CaseReceived,CaseOpened,CaseClientContacted,CaseClosed

DimTime detiene una voce per ogni ora.

Vorrei scrivere un'istruzione MDX che mi otterrà 2 colonne: "CaseRecievedToCaseOpenedOver5" e "CaseClientContactedToCaseClosedOver5"

CaseRecievedToCaseOpenedOver5 terrebbe il numero di casi che hanno avuto una differenza di tempo più di 5 ore per il tempo tra CaseReceived e CaseOpened.

Sto indovinando che "CaseRecievedToCaseOpenedOver5" e "CaseClientContactedToCaseClosedOver5" sarebbero calcolati membri, ma ho bisogno di aiuto per capire come crearli.

Grazie in anticipo.

È stato utile?

Soluzione

Questo sembra un buon posto per utilizzare un tipo di snapshot tabella dei fatti accumulare e calcolare il tempo necessario per passare da uno stadio della pipeline a quello successivo nel processo di ETL.

Altri suggerimenti

Query per AdventureWorks (DateDiff lavora in 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]

Tratto da: http://www.mombu.com/microsoft/sql-server-olap/t-can-i-have-datediff-in-mdx-265763.html

Se userete questo utente molto, crearlo come un membro calcolato nel cubo, nella scheda Calcoli se ricordo bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top