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

سؤال SQL محيرني كتير


AmercO

Recommended Posts

السلام عليكم ..
أشكر كل القائمين على هذا المنتدى الرائع .. أنا جديد نسبياً على عالم الأوراكل .. و أرجو ان تساعدوني بحل هذا السؤال :

عندك جدول إسمه ELOC .. به عمودين ، عمود يمثل رقم الموظف و الثاني يمثل مكان سكنه
مثلاً :
ELO
------------------
LOC | ENO
1 | A
2 | B
1 | B
3 | D
1 | C
2 | A
1 | E
4 | A
السؤال ! : أكتب جملة SQL ترجع كل الموظفين الذين أقامو في المناطق التالية جميعه(A,B,C)


و شكراً جزيلاً ..لكم

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

اخي الكريم
يمكن استخدام IN في هذه العملية

select eno from elco where loc in ('A','B','C');



راجع هذا الرابط

http://www.araboug.org/ib/index.php?showtopic=13003

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

مشكور كتير أخي .. و لكن ليس هذا الجواب إللي أنا عايزه .. أنا فكرت بهاي الطريقة ما بنفع ...


الفكرة هي كالتالي :
نفحص أول ريكورد و نخلي الكورسر واقف عليها و نشوف شو الloc إلها و بعدين نشوف باقي الloc هل هو ساوي للقيم المطلوبة أم لا ...

مثلاً بالجملة إللي انتا اعطيتني اياها حيرجعلك القيم مكررة ..

لكن الجواب الصح هوا رقم واحد فقط

يعني لو تشوف الجدول منيح حتلاقي الموظف رقم 1 هو فقط إللي سكن بالمناطق ال3 جميها

يا ريت لو تفكر شوي ..

على فكرة أنا مش مبتدئ عالآخر ..أنا متوسط بالأوراكل .. بس بعتبر حالي صفر لانه كل ما بعرف شي بلاقي 100 شي لسة لازم أعرفه ..

مشكور كتير

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

الاخ الكريم
معذرة يبدو انني فهمت سؤالك غلط
وجل من لا يسهو
على اية حال اليك الحل

SELECT ENO FROM ELOC
WHERE LOC ='A'
INTERSECT
SELECT ENO FROM ELOC
WHERE LOC='B'
INTERSECT
SELECT ENO FROM ELOC
WHERE LOC='C'


بالنسبة ال INTERSECT
يمكنك مراجعة هذا الرابط الدرس السابع
ستجد التالي


INTERSECT Query

ومبدأ عمله يشبة ال union وهو دمج البيانات مع فارق انه يعرض البيانات الموجودة في الجدول الاول والتي غير موجودة في الجدول الثاني يعني يعرض الغير مكرر فقط بحيث يقارن ان رقم المورد سوف يتكرر في الثلاثة يعني في اشتراك في الثلاثة جمل

select field1, field2, . field_n
from tables
INTERSECT
select field1, field2, . field_n
from tables;

مثال
select supplier_id
from suppliers
INTERSECT
select supplier_id
from orders;



http://www.araboug.org/ib/index.php?showtopic=13003

فما رأيك بالحل :)

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

السلام عليكم

يمكن ذلك عن طريق الكويري الاتي


SELECT T.ENO FROM ( SELECT   ENO ENO   
FROM   ELOC 
  WHERE  LOC='A' ) T ,
( SELECT   ENO  ENO1
FROM   ELOC 
   WHERE  LOC='B'  ) T1,( SELECT   ENO ENO2  
FROM   ELOC 
   WHERE  LOC='C'  )  T2
WHERE  T.ENO=T1.ENO1
 AND  T1.ENO1=T2.ENO2
 AND  T.ENO=T2.ENO2 


و فكرة هذا الكويري هي عمل انلاين فيو بالمناطق التي تريد ان تختار الموظفين الذين سكنوا فيها جميعا و هي في سؤالك A, B , C
ثم نربط بينهم جميعا
و سيكون الناتج هو فقط الذي سكن في كل المناطق
بالتوفيق

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

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

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

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

×   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.

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

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

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