المشاركات : 60
المواضيع 25
:
: 0
الإنتساب : May 2009
السلام عليكم ورحمة الله بركاته
بفرض لدي جدول storage (مستودع) وجدول m للمواد
ما هي تعليمة SQL التي تعطي اسماء المستودعات التي تحوي بداخلها المادة m1 و m2 و m3 ...
أي أن المستودع الواحد يحوي هذه المواد الثلاثة
المشاركات : 316
المواضيع 64
:
: 1
الإنتساب : Apr 2009
عليكم السلام و رحمة الله
أنظر هذا أخي
كود :
SELECT name_storage,name_m,code_sto
FROM storage,m
WHERE name_storage IN('m1','m2','m3')and storage.code_sto=m.code_sto
لم اجربه بعد
المشاركات : 60
المواضيع 25
:
: 0
الإنتساب : May 2009
30-07-2011, 01:21 PM
(آخر تعديل لهذه المشاركة: 30-07-2011, 05:17 PM بواسطة Lam.Abdeldjalil.)
شكرا أخي pixa144 جربت الكود لكنه لم ينجح
أنا كتبت الكود التالي:
كود :
select * from storage
where id in (select id from m where name in ('m1','m2','m3'))
لكن هذا الكود يعيد كل المستودعات التي يوجد فيها أحد المواد المذكورة والصحيح ان تعيد كل المستودعات التي تحوي كل المواد المذكورة
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
السلام عليكم
جرب كالمثال التالي :
كود :
select * from customers
where ( select count(*) from customers where customerid in ('Val1','Val2'))>=2 and customerid in ('Val1','Val2')
في حالتك عدد السجلات يجب أن يساوي 3
بالتوفيق
المشاركات : 60
المواضيع 25
:
: 0
الإنتساب : May 2009
السلام عليكم
شكرا لك اخي لكن المثال الذي طرحته انت لو قسته على مثال المستودعات يفترض وجود المادة الواحدة في مستودع واحد اما ما اتعامل معه انا فيمكن ان تكون المادة موجودة في اكثر من مستودع مع مواد اخرى
قمت بتعديل الكود السابق من اجل البحث فقط ولم اجد الحل بعد للمشكلة الرئيسية
كود :
select * from storage
where id in (select id from m where
(name like '%m1%' or name like '%m2%' or name like '%m3%'))
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
و عليكم السلام و رحمة الله
لماذا حورت الإستعلام ؟
كود :
select * from customers
where ( select count(*) from customers
where customerid in ('Val1','Val2'))>=2 and customerid in ('Val1','Val2')
لاحظ جيدا الإستعلام
نقوم بإختيار الزبائن إذا وجدت القيمتين Val1 . Val2 للـ customerid
إذا وجدت قيمة واحدة فقط الإستعلام لايرجع شيئ وفقا للشرط الأول select count(*) ...>=2
+ لا تنسى الربط الداخلي في حالتك
بالتوفيق