الانتقال إلى المحتوى

ترتيب البيانات بدون استخدام order by


أبي مجيد

Recommended Posts

السلام عليكم ورحمة الله وبركاته
اخواني قد عملت برنامج وسلمته ولكني تفاجئت حين طلبوا مني ان اعمل الترتيب حسب الدرجة الوضيفيةوانت تعلمون ان الدرجة الوضيفية غير خاضعة للترتيب الابجدي فمثلا امين الصندوق سيظهر قبل رئيس مجلس الادارة في الترتيب الابجدي
وهذه مشكلة بالنسبة لى فكيف اعمل ترتيب على بيانات مختارة وانا لا اعرف غير order by .
على العموم انا اضفت حقل بجانب حقل الدرجة الوضيفية وهو عبارة عن ارقام متسلسلة واصبح لكل وضيفة رقم مقابل لها,
ولكن المشكلة عند اضافة وضيفة جديدة فمثلا كان الرقم المقابل للمبرمجين هو 5 واردت اضافة وضيفة جديدة تسبق درجة المبرمجين مثلا محلل فسوف تكون درجة المحلل الان 5 ودرجة المبرمج ومن يليها سوف تزداد بواحد.
ولكن يجب كذلك تغيير البيانات في الجداول لتتوافق مع التعديل الجديد.
في الحقيقة انا لست مقتنع بما عملته فالبيانات اصبحت كبيرة والدرجات الوضيفية تزداد يوما فيوم .
فهل هناك طريقة مثلى لعمل مثل هذا الترتيب افيدونا افادكم الله .
وانا الان انتهزها فرصة لتقديم شكري وامتناني للمسؤولين والاعضاء عن هذا المنتدى الرائع وعن النوايا الطيبة التي يحملوها .

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته ,,

اقتراح :
الحل الاول :
انشاء جدول لرموز الدرجات الوظيفيه يحتوى على :
1-الرمز - Primary key
2-مسمى الوظيفة
3-المستوى الوظيفى ( 1 - 2 - 3 - ..... )

يمكن ربط الجدول مع جداول النظام الاخري ..

الحل الثاني : يمكنك استخدام أمر ال decode فى جملة الselect
ثم اجراء الفرز المطلوب
الحل الثاني سيتطلب تعديل دائم للتقرير مع اضافة وظائف جديده .

من المفروض من خلال مرحلة التحليل للنظام ان يتم حصر كافة الوظائف فى بداية عمل النظام وتسجيلها مباشرة.
مع امكانية الاضافة للرموز خلال العمل بالنظام ولكن تكون قليله .

مثال لاستخدام الفرز باستخدام امر الDECODE

select   decode ( job ,'CLERK' ,5 ,'SALESMAN' , 4 , 'MANAGER' ,2 , 'ANALYST' ,3 ,
'PRESIDENT', 1 ,99) JOBGRADE , job ,   empno, ename 
FROM EMP ORDER BY JOBGRADE
/
 JOBGRADE JOB            EMPNO ENAME
---------- --------- ---------- ----------
        1 PRESIDENT       7839 KING
        2 MANAGER         7566 JONES
        2 MANAGER         7698 BLAKE
        2 MANAGER         7782 CLARK
        3 ANALYST         7788 SCOTT
        3 ANALYST         7902 FORD
        4 SALESMAN        7499 ALLEN
        4 SALESMAN        7521 WARD
        4 SALESMAN        7654 MARTIN 4 SALESMAN        7844 TURNER
        5 CLERK           7369 SMITH

 JOBGRADE JOB            EMPNO ENAME
---------- --------- ---------- ----------
        5 CLERK           7934 MILLER
        5 CLERK           7876 ADAMS
        5 CLERK           7900 JAMES

تم تعديل بواسطة Ahmed_oracle
رابط هذا التعليق
شارك

هلا اخي الحل يمكن ان يكون اضافة الدرجة الوضيفيه تتم علي مرحلتين في الكود
المرحله الاولي بمجرد الاضافه من علي الفورمز وقبل الحفظ عمل تحديث للجدول لكل الارقام المساوية للكود المراد تحديثه و كذلك الاكواد الاكبر منه و يتم زيادة رقم لكل منهم
ثم حفظ البيانات هذا حل مؤقت اتمني ان يفيدك
ويمكن تسهيل الاضافه عن طريق حل وهوا عمل سلم وظيفي اي تحديد من هوا المدير لهذه الدرجة الوظيفيه
مع تمنياتي بالتوفيق

رابط هذا التعليق
شارك

اخواني الاعزاء بارك الله فيكم وجزاكم الله عني خيرا وانا اسف لتضييع وقتكم في مشاكلي وتوكيلكم في مشكلة التفكير عني ولكني ساشهد لكم ولكل من في هذا المنتدى يوم القيامة.
اما بالنسبة للاخ احمد جزاه الله خيرا فاعتقد ان طريقة الdecode صعبة التطبيق في مثل هذه الحالة فانه يجب علي تحديث البيانات يدويا في كل مرة تحصل تحديث للدرجة الوضيفية كما يحصل حاليا فانا من يقوم باضافة الدرجة الوضيفية ولكنها فكرة جيدة قد غابت عني ساعتها .
اما بالنسبة للاخ balck & white اذا لم يكن قلبك انت ناصع البياض فمن يكون اذا.

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية