مثال على طريقة عمل إحصائية عددية في قاعدة بيانات Access، ولمطورو Oracle أيضا نصيب!


المدخل

لنفترض أن لدينا جدولا لبيانات الموظفين ويحتوي على الحقول التالية:
– EMPNO (رقم الموظف).
– ENAME (الاسم).
– JOB (الوظيفة).
– HIREDATE (تاريخ التعيين)
– SAL (الراتب).
– DEPTNO (الإدارة).
والمطلوب منا عمل إحصائية بأعداد الموظفين حسب الوظيفة أو إحصائية بأعداد الموظفين حسب الإدارة، فما الطريقة؟

الطريقة

حسنا، الأمر بسيط جدا كل ما نحتاج إليه هو استعلام يتكون من عمودين فقط، العمود الأول لحقل EMPNO والعمود الآخر لحقل JOB أو لحقل DEPTNO، ثم نضغط على أمر “الإجماليات” في علامة تبويب تصميم، وفي الصف الإجمالي لعمود EMPNO سنختار الدالة “Count” وهذا كل شيء!  إحفظ الإستعلام ثم استخدمه كمصدر للسجلات لنموذج أو تقرير.

إظهار صف الإجمالي

 

إضافة دالة التجميع Count في عمود رقم الموظف

لحظة، ربما تتساءل عزيزي القارىء لماذا اخترنا التجميع يكون على حسب حقل EMPNO؟ حسنا هذا سؤال جيد، لأن EMPNO هو مفتاح رئيسي وهذا يعني أنه لا يحتوي على قيم فارغة، وهذا أمر مهم جدا أليس كذلك؟

تلميحات متقدمة

أ. عند تشغيل الإستعلام ستلاحظ أن حقل EMPNO قد تغير اسمه إلى “CountمنEMPNO” أو شيء آخر مشابه وهذا أمر طبيعي، لتغيير اسم الحقل إفتح الإستعلام في وضع التصميم واكتب “TOTAL:” أمام اسم الحقل (لا تنسى كتابة النقطتان)، حيث “TOTAL” سيكون هو الاسم الجديد للحقل، كذلك من خلال خصائص الحقل تستطيع إضافة تسمية توضيحية للحقل ليظهر اسمه بالغة العربية.

ب. قد لا تكون الأمور دائما سهلة، ماذا لو طلب منك إحصائية بأعداد الموظفين حسب الإدارة للموظفين الذين تعينوا -على سبيل المثال- من تاريخ 1/1/2005 ولغاية تاريخه؟ حسنا ما زالت الأمور سهلة، سندرج عمودا جديدا لحقل HIREDATE وفي صف المعايير سنكتب “>=#01/01/2005#” ولكن الخطوة الأهم أن نختار “Where” في صف الإجمالي وإلا النتائج ستكون “مخلبصة”.

إنشاء إحصائيات متقدمة من خلال استخدام المعايير (الشروط)
تستطيع استخدام الإستعلام كمصدر للسجلات لنموذج أو تقرير

ومن اليوم ستكون الإحصائيات لعبتك الجديدة.

مطورو Oracle

سأنتقل الآن لأحبائي مطورو Oracle، لقد أنشات Script بسيطا يلخص كل شيء:

SQL>  SELECT job, COUNT(empno) AS Total
 FROM emp
 GROUP BY job
 Order BY Total DESC ;

 

مع ملاحظة التالي:
أ. أن الكلمة AS هو الاسم البديل (Alias) لحقل empno.
ب. أن خيار التجميع GROUP BY في مثالنا هذا أمر ضروري، فالقاعدة تقول أن كل حقل مذكور في عبارة Select ما عدا التي استخدمنا معها إحدى دوال تجميع (AVG, COUNT, MAX, MIN, SUM) يجب أن تذكر في عبارة  GROUP BY، وعدم احترام هذه القاعدة يؤدي إلى ظهور أخطاء مثل خطأ ORA-00937 والخطأ ORA-00979.

تنفيذ الـ Script في بيئة SQL*Plus

المهمة اكتملت (The Mission Accomplished) أرجو أنكم استفدتم من هذه التدوينة.

9 آراء حول “مثال على طريقة عمل إحصائية عددية في قاعدة بيانات Access، ولمطورو Oracle أيضا نصيب!

  1. تصدق ياخوي كل ما اشوف كود اس كيو ال بمكان, حتى لو كان كويري بسيط, قلبي يعورني 😦

    آنا إشتغلت لمدة سنة تقريبا على نظام الاوراكل 7 قبل سنين, على تو بلاتفورمز Mainframe & IBM OS/2

    كانت بالفعل أيام حلوة

    المهم كان في سؤال tricky نحاول نصيد فيه اي واحد يتقدم للعمل مع مجموعتنا

    If you are a DBA, and you want to take over one of the user’s userid in order to do some changes under his credentials without him knowing, and of course without altering his password or being audited

    how would you do it
    ?

    شكرا

    إعجاب

  2. مثال على طريقة عمل إحصائية عددية في قاعدة بيانات Access، ولمطورو Oracle أيضا نصيب! كتب:

    […] يمكنك أيضا قراءة المقال الأصلي . . […]

    إعجاب

  3. شكرا حسون لأنك شغلتني يومين بهالسؤال. 🙂
    بتصوري إن مو من المفترض إن DBA يقوم بمثل هذا العمل لأنه يخالف أخلاقيات العمل، أما عن الكيفية فأظن أن هناك أكثر من طريقة للـ DBA تعتمد بالتأكيد على مدى معرفته وخبرته وخاصة بجداول النظام، بالنسبة لي يمكن أجرب تغيير كلمة المرور الخاصة بالمستخدم ومن ثم الدخول بحسابه، وبعد أن أنتهي أعمل Flashback لجدول المستخدمين فقط وكأن شيئا لم يحدث، للأمانة لم أجرب هذا الأمر من قبل ولكن أظن أن هذه الطريقة ستنجح. ألا توافقني الرأي؟ 🙂

    إعجاب

  4. إخواني القائمين على هذا الموقع .
    السلام عليكم ورحمة الله وبركاته وبعد.
    أريد عمل استعلام احدد فيه اسم عميل واحدفقط من العملاءوبياناته حيث يوجد لدي مجموعة عملاء.
    (حقول الجدول العام) هي:اسم العميل -دائن-مدين-تاريخ-ملالاحظات).
    والجدول الثاني:يسمى (اسماء) العملاء فيه رقم مسلسل واسم العميل فقط.ياريت تساعدوني بارك الله فيكم..
    أخوكم من الإمارات

    إعجاب

  5. شكرا لك وبارك الله فيك
    وكثر الله من امثالك
    معلومات قيمة
    وان شاء الله في ميزان حسناتك
    وخواتم مباركة

    إعجاب

أضف تعليق