مقدمة

هذه المقالة موجهة لمطوري قواعد البيانات.

تتبع هذه المقالة لسلسة المقالات المتعلقة بالأداء وقابلية التوسع والأمثلة، وهدف هذه المقالة طرح مسألة جديدة تتعلق بحساب المجاميع التراكمية، ومن ثم دراسة الحلول المقترحة ومناقشتها.

المسألة

تتعلق المسألة بحساب المجاميع التراكمية لكل حساب Account على مستوى كل حركة في جدول الحركات Entries، وذلك وفق ترتيب الحركات الزمني

تتعامل هذه المسألة مع جدولين الأول هو جدول الحسابات Accounts والثاني هو جدول الحركات Entries، ويقابل كل سطر في جدول الحسابات مجموعة أسطر في جدول الحركات تمثل الحركات التابعة له، والمطلوب حساب قيمة المجموع التراكمي لكل حساب من أجل كل حركة تابعة له في جدول الحركات مرتبة حسب التاريخ date.

لأنشاء الجداول يمكنك استخدام الملف Create.sql ولشحن الجداول بالقيم يمكنك استخدام الملف Populate.sql.

الحل

حل المسألة يجب أن يحتوي الأعمدة رقم الحساب account_id واسم الحساب account_name وتاريخ الحركة date وقيمة الحركة amount والمجموع التراكمي running_total وذلك وفق الشروط التالية:

  • يجب أن تكون النتيجة مرتبة حسب رقم الحساب account_id ومن ثم تاريخ الحركة date.
  • يجب أن تحتوي النتيجة على كل الحسابات الموجودة في جدول الحسابات.
  • يجب أن يرسل الحل كتعليق على هذه المقالة، والموعد الآخير لإرسال الحلول هو 8 آذار 2010.

سيتم دراسة الحلول ومناقشتها في مقالة أخرى.

ملاحظة:أرجو من جميع مطوري قواعد البيانات وكل من لديه خبرة المشاركة بحلولهم، وذلك بهدف تبادل الأفكار ونشر المعرفة.