مشكلة تدابير شبه مضافة - مجموع لقطات لكل شهر ، ولكن ليس عبر أشهر
سؤال
يتقن مع SQL ولكن جديد على MDX ، أواجه مشكلة في الحصول على رأسي حول هذا:
لدي جدول حقائق يحتوي على لقطات من أرصدة الحساب شهريًا. أحتاج إلى تراكم الأرصدة كتدبير شبه مضغوط - لا يعمل المبلغ المستقيم ، من الواضح ، للأرصدة. ومع ذلك ، فأنا بحاجة إلى جمع جميع الأرصدة في كل شهر ، بشكل منفصل ، عن طريق إضافة أرصدة جميع الحسابات ، وبالتالي فإن فكرة "LastNonEmpty" لا تعمل بالنسبة لي أيضًا. مثال ، إذا كانت الحقائق تبدو هكذا:
Date AccountNo Balance
2009-01-31 1111 $100
2009-01-31 2222 $100
2009-01-31 4444 $100
2009-01-31 5555 $100
2009-02-28 1111 $100
2009-02-28 2222 $200
2009-02-28 3333 $500
2009-02-28 5555 $50
etc.
ولديّ بعد حساب الحساب الذي يحسب المجموعات في التسلسل الهرمي الرئيسي للفئة / الفئة / الحساب ، أحتاج إلى إخراج مثل هذا يلخص الأرصدة لكل شهر عبر جميع الحسابات:
Month Total
January 09 $400
February 09 $850
وعن طريق الانهيار حسب نوع الحساب:
Month Total
January 09 $400
Type 1 $200
1111 $100
2222 $100
Type 2 $200
February 09 $850
Type 1 $300
Type 2 $550
ولكن لا ينبغي أن تتجاوز الأرصدة عبر الأشهر أو الأرباع أو السنوات ، لأنها لا معنى لها ، وسيتم حسابها مرتين. يجب أن تظهر الفاصل الزمني لفترة أطول:
Quarter WRONG Correct
Q1 $1250 $850 // should be the sum of balances for the *last* month in Q1
Type 1 $500 $300
Type 2 $759 $550
إذا كنت أستخدم التجميع "FastNonEmpty" ، يبدو أنني أحصل على صف الحساب الأخير الحرفي لمدة شهر ، وليس مجموع أرصدة الحساب للشهر الماضي. يبدو الأمر كما لو أن الإجمالي لهذا الشهر يظهر الرصيد المأخوذ من حساب عشوائي واحد موجود في ذلك الشهر ، وليس الإجمالي. (أنا متأكد من أنه ليس عشوائيًا حقًا ، ربما يختار واحدة بناءً على أمر التخزين أو شيء من هذا القبيل)
أنا متأكد من أنني أفعل شيئًا بسيطًا ، خطأ ...
المحلول
أعتقد أنني حللت هذا: كانت بيانات المصدر التي تحتوي على أرصدة متناثرة للغاية - كان هناك صف فقط للأرصدة غير الصفر ، ولا توجد صفوف للحسابات عندما يكون الرصيد صفرًا. هذا جعل كل شيء مشتعلة (تخيل كمخزون ، حيث لديك عدد من الأجزاء ، وغالبًا ما تكون هذه التهم صفرًا ، ولكن عندما تكون 0 ، يكون الصف مفقودًا فقط من جدول الحقائق)
تمكنت من إنشاء طريقة عرض في مصدر البيانات "من شأنها إضافة" جميع الصفوف الإضافية ، مع وجود أرصدة صفرية ، وبعد ذلك بدأت وظيفة ClosingPeriod () كما هو متوقع.