سؤال

وأنا لا أعرف إذا كان ذلك ممكنا أم لا، أو إذا معرفتي محدودة من MDX يدفع لي في الاتجاه الخاطئ ...

والمكعب أتعامل مع اثنين من الأبعاد المختلفة للتواريخ، [Statement Dates] و[Premium Dates]. وعلاوة على ذلك في التسلسل الهرمي للكل يبدو مثل هذا:

[Statement Dates].[Statement Year].[2008]  
[Payment Dates].[Payment Year].[2008]

لمنطق الأعمال وأنا تنفيذ يجب أن أفعل شيئا مثل:

select
  ({ [Measures].[Commission] }) on columns,
  ({[Products].[Product Category]}) on rows
from [Cube]
where
(
  IIF( [Products].[Product Category].CurrentMember.Name = "Some Category",
       [Statement Dates].[Statement Year].[2008], 
       [Payment Dates].[Payment Year].[2008] )
)

وهكذا كنت في حاجة إليها للتمييز ما بعد لاستخدامها لتصفية السنة بناء على ما فئة المنتج يتم استخدامه.

وهذا يوزع موافق وتشغيل الاستعلام، ولكن يبدو أن الأرقام تشير إلى أن بيان IIF تعود دائما كاذبة.

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

المحلول

ولأن يحصل على تقييم جملة WHERE أولا لن يؤدي إلا إلى وظيفة .CurrentMember في معهد التمويل الدولي أن تشهد "كل Cateogories المنتج". وفي هذه الحالة [المنتجات]. [فئة المنتج] .CurrentMember.Name لن تكون أبدا يساوي "بعض الفئة" على فئة المنتج الوحيد في السياق هو "كل Cateogories المنتج".

واحد عمل محتمل حول سيكون للقيام الحساب كما يلي:

WITH MEMBER Measures.Commission2 as 
SUM(
{[Products].[Product Category].[Product Category].Members}
, IIF( [Products].[Product Category].CurrentMember.Name = "Some Category"
   , ([Statement Dates].[Statement Year].[2008],[Measures].[Commission])
   , ([Payment Dates].[Payment Year].[2008].[Measures].[Commission]) )
)
select  
   ({ [Measures].[Commission2] }) on columns
,  ({[Products].[Product Category]}) on rows
from [Cube]

ويمكنك أيضا القيام assignement راقب في البرنامج النصي حساب في المكعب الخاص للقيام بهذا النوع من الشيء.

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