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

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

صورة
- - - - -

طلب طريقة عرض الموظفين الغير مرتبطين


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

#1 IGBSpeed

IGBSpeed

    عضو نشط

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

تاريخ المشاركة 10 August 2005 - 10:01 AM

السلام عليكم ورحمة الله وبركاته :
أخواني الكرام
الموظفين الذين ليس لهم موظفين تحت إدارتهم ، هي عبارة عن إحدى طرق السلف جوين كيف أستطيع أن أعرض الموظفين الذين ليس لهم موظفين تحت إدارتهم :
أنظر هذا العبارة لتعرف المطلوب أكثر :

select ename from emp where empno not in (select distinct(mgr) from emp); ..
.
no row selected .


ماهو الحل مع الشكر .

تم التعديل بواسطة إبراهيم بخش, 10 August 2005 - 10:02 AM.

igb_igsb@hotmail.com

********

صفحتي على الفيس


#2 Amrooracle

Amrooracle

    مشترك

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

تاريخ المشاركة 10 August 2005 - 12:01 PM

أخى انا لا افهم قصدك جيداً
و لكن خذ هذا الرد
[/sql]SELECT * FROM WHERE MGR IS NULL
لا إله إلا الله ؛ محمد رســــول الله
سبحان الله و الحمد لله و لا إله إلا الله و الله اكبر و لا حول و لا قوة إلا باللهamrooracle@yahoo.com

#3 m_dba

m_dba

    عضو نشط

  • الأعضــاء
  • 238 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Zaki
  • البـلـد: Country Flag

تاريخ المشاركة 10 August 2005 - 02:34 PM

جرب هادا الكود انا اسف عشان ما جربتو لانوانا مو في البيت حاليا
select e.ename ,e.empno,m.ename ,m.empno
from emp e,emp m
where mgr_id is null
امسح ذنوبك في دقيقتين - بس دقيقتين وشوف

http://www.shbab1.com/2minutes.htm

#4 أسامة موسى

أسامة موسى

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

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 10 August 2005 - 02:53 PM

الاخ m_dba
لنفرض ان هذا الموظف موجود بحقل mgr موظف ولكنه ليس مدير يعني ادخل بالخطأ يعني القيمة مش null

والحل كما فهمت هو كالتالي

Select ename from emp where mgr not in (select empno from emp);


بس ممكن توضح اكثر يا اخ ابراهيم
ما هو المقصود ب

أن أعرض الموظفين الذين ليس لهم موظفين تحت إدارتهم


تم التعديل بواسطة Admin05, 10 August 2005 - 02:56 PM.

۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com

#5 محمد السقاف

محمد السقاف

    عضو

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

تاريخ المشاركة 15 August 2005 - 05:33 PM

ا دققنا في جدول الموظفين نجد انه يحتوي على عمود mgr وهذا العمود يمثل رقم المدير للموظف ... اذن هناك علاقه بين عمود المدير ورقم الموظف فالمدير نفسه عباره عن موظف اي يوجد له رقم داخل داخل عمود empno أي اننا نسطيع ربط الجدول بنفسه عن طريق العمودين mgr و empno
ولعم الربط لابد من تقسيم الجدول الى جدولين احدهما يمثل جدول الموظفين مثلا (Worker) والاخر يمثل المدراء وليكن ( manager)
بحيث يكون جدول وركر كالتالي
empno ename mgr


جدول مانجر يكون
empno ename


الان نربط الجدولين عن طريق الاكول جوين (الربط بالتساوي)


[sql] SELECT Wroker.empno,worker.ename, manager.ename
FROM emp worker,emp manager
WHERE worker.mgr = manager.empno;

هنا سيتم عرض ارقام الموظفين واسماءهم من جدول وركر وسيتم عرض اسماء المدراء من جدول المدراء

بالنسبه لطلبك وهو عرض الموظفين الذين ليس لهم مدراء غير الشرط كالاتي

WHERE worker.mgr=NULL;

اعذرني لو كان هناك اخطاء لان الجها ز اللي انا فيه لا يوجد فيه اوراكل واذا كان قصدك شي ثاني ارجوا التوضيح

مع تحياتي
اخوك

لا تنسانا بصالح دعاااائك

#6 chayah

chayah

    مشترك

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

تاريخ المشاركة 16 August 2005 - 09:46 AM

الأخ محمد السقاف نسيت أن تعمل outer joint لتصبح التعليمة بالشكل:
SELECT Worker.empno,worker.ename, manager.ename
FROM emp worker,emp manager
WHERE worker.mgr = manager.empno(+) and worker.mgr is null

#7 medosal

medosal

    عضو

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

تاريخ المشاركة 16 August 2005 - 10:48 AM

يوجد تعديل بسيط على جملتك أخ إبراهيم لان mgr يحتوى على قيم null ولذلك نكتب الجملى كالتالى

SQL> select ename from emp where empno not in (select nvl(mgr,0) from emp);

ENAME
----------
SMITH
ALLEN
WARD
MARTIN
TURNER
ADAMS
JAMES
MILLER

8 rows selected.