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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

اعلى خمس رواتب في الشركة


7 رد (ردود) على هذا الموضوع

#1 issamfe

issamfe

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 01 March 2007 - 12:13 AM

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

ملفات مرفقة



#2 هانى سند

هانى سند

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 743 مشاركة

تاريخ المشاركة 01 March 2007 - 04:19 AM

السلام عليكم
مشكور أخي الكريم
و يمكن ايضا تحقيق نفس النتيجة بجملة استعلام بسيطة
و هي مثال علي مفهوم الtop n view
اي اعلي ارقام لشئ معين
مثل اعلي 5 رواتب او قدم 5 موظفين تم تعيينهم

و اليكم جملة الاستعلام
SELECT   ROWNUM RANK, ename, sal
	FROM (SELECT   *
			  FROM emp
		  ORDER BY sal DESC) a
   WHERE ROWNUM < &&req_num + 1
ORDER BY sal DESC, ename
   
ملحوظة : عند تشغيل الاستعلام سيطلب منك الرقم الذي تريد الاستعلام عنه مثل اعلي 5 او اعلي 10 و هكذا
ادخل الرقم نفسه
مثل اذا كنا نريد ان نختار اعلي 5 موظفين من حيث الراتب نكتب 5
و ايضا يمكن تعديل الاستعلام ليكون علي تاريخ التعيين مثلا

مع تمنياتي بالتوفيق

#3 العملاق اليمني

العملاق اليمني

    مشترك

  • الأعضــاء
  • 139 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 21 May 2007 - 07:34 PM

كلام الزميل هاني مزبوط وشكرا على تفاعلة
النــــــــــــــــــــــــــصر دائـــــــــــــــــــــــمًا للإســـــــــــــــــــــــــــــلام

#4 Ash_Sawalha

Ash_Sawalha

    عضو

  • الأعضــاء
  • 4 مشاركة

تاريخ المشاركة 07 June 2007 - 01:39 PM

** طريقة بسيطة وسريعة لإرجاع عدد معين من السجلات في (Report) وهذه الطريقة محددة بعدد معين فقط من السجلات
1 . يتم اختيار (Property Palette) للمجموعة .
2 . في خيار (Group) يتم اختيار نوع (Filter Type) مثلاً (First) لإرجاع أول عدد معين من السجلات.
3 . يظهر خيار جديد (Number Of Records) نضع فيه عدد السجلات التي نرغب بإرجاعها .

#5 sameh bakkar

sameh bakkar

    مشرف قسم المبتدئين

  • فريق الإشراف
  • 1,019 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 07 June 2007 - 02:44 PM

أخى هانى كلنا نعلم Top-N و لكن الاخ صاحب المشاركه ذكر انه كان فى مقابله لوظيفه فربما سألوه ان يقوم بعمل procedure يقوم باستخراج اعلى 5 مرتبات وليس جمله استعلام .. ولك جزيل الشكر

Sameh Bakkar

Principal Oracle Apps Techno-Functional Consultant / Oracle E-Business Suite Certified Trainer

Oracle E-Business R11 Suite Applications Workflow Certified Expert

Oracle E-Business Suite R12 HCM Certified Implementation Specialist

Oracle Certified Professional

ITIL V3 Foundation certified

Microsoft Project certified




الموقع الخاص: AppsLead | Your Honest Guide | Sameh Bakkar


#6 osama80

osama80

    مشترك

  • الأعضــاء
  • 84 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 April 2008 - 12:18 PM

مشكور اخي الكريم على الايضاح

#7 the last one

the last one

    عضو

  • الأعضــاء
  • 6 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 26 April 2009 - 10:01 PM

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

select * from emp E
where &N = (select count(distinct nvl(sal,0)) from emp
; where sal >= E.sal )

ارجو ان ينال اعجابك



#8 el_saka

el_saka

    مشترك

  • الأعضــاء
  • 76 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 April 2009 - 12:43 AM

ده اسهل حل
select sal from (select sal from emp order by sal desc)
where rownum<6

  • ahmedfouademam معجب بهذا