استعلام MDX يحتوي على أبعاد 2 من نفس التسلسل الهرمي

StackOverflow https://stackoverflow.com/questions/1860975

  •  13-09-2019
  •  | 
  •  

سؤال

الهياكل ذات الصلة من مكعبي هي أن لدي تسلسل هرمي ب "فئة" و "فرعية". لدي أيضا إجراء يسمى "القيمة" وهو ما أحاول الحصول عليه.

قد يبدو الاستعلام البسيط:

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY ([Some Dimension].[Class Hierarchy].[Class]) ON ROWS
FROM [MyCube]

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

مشكلتي هي ذات شقين، أولا كيف سأتفق "هذا التسلسل الهرمي لتلقي كل من الفئة والفئة الفئة الفرعية كأعضاء منفصل في التشيليين؟ هذا لا يعمل:

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY (
   [Some Dimension].[Class Hierarchy].[Class], 
   [Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]

يستخدم التسلسل الهرمي التسلسل الهرمي للفئة أكثر من مرة في وظيفة crossjoin

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

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY (
   {[Some Dimension].[Class Hierarchy].[Class].&[ClassA],[Some Dimension].[Class Hierarchy].[Class].&[ClassB]}, 
   [Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]

أي مساعدة موضع تقدير كبير. MDX يقودني المكسرات!

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

المحلول

أنت تفتقد خاصية الأعضاء على بعدك.

للحصول على مثالك الأول، جرب هذا:

SELECT 
    NON EMPTY ([Measures].[Value]) ON COLUMNS,
    NON EMPTY {(
            [Some Dimension].[Class Hierarchy].[Class].MEMBERS,
            [Some Dimension].[Class Hierarchy].[Sub Class].MEMBERS)} ON ROWS
FROM [MyCube]

لمثالتك الثانية، جرب هذا:

SELECT 
    NON EMPTY ([Measures].[Value]) ON COLUMNS, 
    NON EMPTY {(
            [Some Dimension].[Class Hierarchy].[Class].&[ClassA],
            [Some Dimension].[Class Hierarchy].[Class].&[ClassB],
            [Some Dimension].[Class Hierarchy].[Sub Class].MEMBERS)} ON ROWS
FROM [MyCube]

نصائح أخرى

استخدام السدود في جملة حيث الخاص بك. ستقيد MDX دائما استخدام بعدا واحدا على محور واحد فقط.

الاستعلام الفرعي هو وسيلة لتحويل ذلك. لقد تعلمت مؤخرا هذه الخدعة بعد أن قادني MDX إلى المكسرات أيضا ..

مرحبا بك هذا الاستعلام يعمل بالنسبة لي.

 SELECT NON EMPTY { [Measures].[App Count] }
 ON COLUMNS, 
 NON EMPTY 
 {(
 EXISTING 
 (
 [MART TIME DIM].[Date].[Date] .MEMBERS) * 
 [New Ren DIM].[New Ren CODE].[New Ren CODE].ALLMEMBERS
 )}
 ON ROWS FROM [SubmissionCube]  
 where
({
[MART BROKER DIM].[BROKER ID].&[10812]},{[MART TIME DIM].[Year].&[2015],
{[MARTTIME DIM].[Year].&[2016]}
})  

يرجى توخي الحذر مع "}" في جملة WHERE حيث أن الاستعلام لديه.

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