سؤال

أواجه مشكلة في تقييد الاستعلام في MDX ، باستخدام الوظيفة باستثناء FUNCTION AN WHERE CHELAUSE. أحتاج إلى استرداد مجموعة من البيانات ولكن ليس في مجموعة محددة. ثم قمت بإنشاء الاستعلام التالي:

select {[Measures].[Amount], [Measures].[Transaction Cost], [Measures].[Transaction Number]} ON COLUMNS,{[ManualProcessing].[All ManualProcessings].[MAGNETICSTRIPE], ManualProcessing].[All ManualProcessings].[MANUAL]} ON ROWS 
FROM [Transactions]
where except([Product].[All Products].Children,{[Product].[All Products].[Debit})

يبدو أن هذا يعمل بشكل جيد ، لكن عندما أحاول إضافة تقييد آخر إلى Slicer ، حصلت على هذا الخطأ: لا توجد وظيفة تتطابق مع توقيع (مجموعة ، عضو).

أنا أعمل حاليًا على موندريان 3.1

هل من الممكن إضافة قيود متعددة إلى Slicer عندما أغني الوظيفة باستثناء الوظيفة؟ هل هناك أي طريقة أخرى للحصول على هذا؟

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

المحلول 2

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

WITH member [Product].[Except] as ([Product].[All  Products]) - 
([Product].[All Products].[Debit]) 
SELECT {[Measures].[Amount],[Measures].[Transaction Cost], [Measures].[Transaction Number]} ON COLUMNS,
{[ManualProcessing].[All ManualProcessings].[MAGNETICSTRIPE],[ManualProcessing].[All ManualProcessings].[MANUAL]} ON ROWS 
FROM [Transactions] 
WHERE[Product].[Except]

نصائح أخرى

ال باستثناء الوظيفة يعمل فقط مع مجموعات. ولكن يمكنك استخدام أبعاد n على where:

select {[Measures].[Amount], [Measures].[Transaction Cost], [Measures].[Transaction Number]} ON COLUMNS,{[ManualProcessing].[All ManualProcessings].[MAGNETICSTRIPE], ManualProcessing].[All ManualProcessings].[MANUAL]} ON ROWS 
FROM [Transactions]
where 
   (
      except([Product].[All Products].Children,{[Product].[All Products].[Debit}),
      except([Set],[Set to exclude])
   )

هذا يعمل في خدمات التحليل 2005 ، يجب أن يعمل في موندريان

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