delphi4arab منتديات دلفي للعرب

نسخة كاملة : شرط في تعليمة sql
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله بركاته

بفرض لدي جدول storage (مستودع) وجدول m للمواد
ما هي تعليمة SQL التي تعطي اسماء المستودعات التي تحوي بداخلها المادة m1 و m2 و m3 ...
أي أن المستودع الواحد يحوي هذه المواد الثلاثة
عليكم السلام و رحمة الله
أنظر هذا أخي
كود :
SELECT name_storage,name_m,code_sto FROM storage,m WHERE name_storage IN('m1','m2','m3')and storage.code_sto=m.code_sto
لم اجربه بعد
شكرا أخي pixa144 جربت الكود لكنه لم ينجح
أنا كتبت الكود التالي:

كود :
select * from storage where id in (select id from m where name in ('m1','m2','m3'))
لكن هذا الكود يعيد كل المستودعات التي يوجد فيها أحد المواد المذكورة والصحيح ان تعيد كل المستودعات التي تحوي كل المواد المذكورة
السلام عليكم

جرب كالمثال التالي :
كود :
select * from customers where ( select count(*) from customers where customerid in ('Val1','Val2'))>=2 and customerid in ('Val1','Val2')
في حالتك عدد السجلات يجب أن يساوي 3

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

قمت بتعديل الكود السابق من اجل البحث فقط ولم اجد الحل بعد للمشكلة الرئيسية
كود :
select * from storage where id in (select id from m where (name like '%m1%' or name like '%m2%' or name like '%m3%'))
و عليكم السلام و رحمة الله

لماذا حورت الإستعلام ؟

كود :
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

+ لا تنسى الربط الداخلي في حالتك

بالتوفيق