سؤال

لدي مكعب يسحب بياناته من 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 التي ستزودني بعمودين:"CaseRecievedToCaseOpenedOver5" و "CaseClientContactedToCaseClosedOver5"

CaseRecievedToCaseOpenedOver5 سيحتوي على عدد الحالات التي كان لها فارق زمني يزيد عن 5 ساعات للوقت بينهما CaseReceived و CaseOpened.

أظن ذلك "CaseRecievedToCaseOpenedOver5" و "CaseClientContactedToCaseClosedOver5" سيتم احتساب الأعضاء، ولكني بحاجة إلى بعض المساعدة في معرفة كيفية إنشائهم.

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

يبدو هذا مكانًا جيدًا لاستخدام جدول حقائق نوع اللقطة المتراكمة وحساب الوقت المستغرق للانتقال من مرحلة واحدة من خط الأنابيب إلى المرحلة التالية في عملية ETL.

نصائح أخرى

الاستعلام عن 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

إذا كنت ستستخدم هذا العضو كثيرًا، فقم بإنشائه كعضو محسوب في المكعب، في علامة التبويب العمليات الحسابية إذا كنت أتذكر جيدًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top