سؤال

لقد قمت بإنشاء استعلام MDX الذي يحسب أعلى 10 zipcodes (وفقا لقياس مريئي البقاء) على هذا النحو:

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10)
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

يستخدم هذا الاستعلام لملء مخطط شريط الأداء بنسبة 100٪ من الأداء. لقد طلب العميل أنه نظرا لأن هذا هو الرسم البياني مقرا له! 00٪، فإننا نكتسم بقية الرموز البريدية في حقل "آخر"، بحيث يجب أن يكون هناك 11 قيم: واحد لكل من أعلى 10، وحادي عشر هو مجموع الرموز البريدية المتبقية.

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

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

المحلول

سأبذل قصارى جهدي مع كود غير مختبر، لذلك سيندم هنا:

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SET [Top10ZipCodes] AS 
    (TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10))

MEMBER [Patient].[ByZipCode].[OtherZipCodes] AS 
    (AGGREGATE({EXCEPT([Patient].[ByZipCode].Members, [Patient].[ByZipCode].[Top10ZipCodes])}))

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

{[Top10ZipCodes], [Patient].[ByZipCode].[OtherZipCodes]}
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

ما يقوم هذا هذا بإنشاء مجموعة من أفضل 10 رموز zip الخاصة بك، ثم المجاميع (مختلفة عن مجموع !!!) جميع رموز البريدية، باستثناء أعلى 10.

أيضا، إذا كانت هذه مجموعة مشتركة (أعلى رموز ZIP 10)، فقد ترغب في إنشاء مجموعة على المكعب، حيث يمكنك إعادة استخدام تكنولوجيا المعلومات، دون الحاجة إلى تغيير كل استعلام MDX لديك.

هتافات،
إريك

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