نقل قول: دستور فقط در کوئری
سلام
میتونید در جایی که دارید شرط رو اعمال میکنید از Not Like استفاده کنید. همه محصولاتی را نمایش بده که در لیست محصولات ایران خودرو وجود ندارد: Not Like 'ایران خودرو'
نقل قول: دستور فقط در کوئری
تو این دستور مشتری اول رو هم نشون میده چون سایپا داره من میخوام دستوری بنویسم که فقط مشتری ۲ رو نشون بده که ایران خودرو نداره حالا اینجا هر مشتری دو تا محصول ثبت شده ممکنه چند صد تا محصول دیگه به اسمش باشه
2 ضمیمه
نقل قول: دستور فقط در کوئری
من سه تا جدول مطابق تصویر زیر ایجاد کردم و اطلاعات اولیه را هم ثبت کردم
ضمیمه 153575
- جدول مشتری ها
- جدول محصولات
- جدل سفارش
در جدول سفارش یکی از مشتری ها یک محصول کمتر خرید کرده است و قراره که در خروجی مشتریانی حذف شوند که محصول مورد نظر را خرید نکرده اند.
select
*
from
tblOrder
where
fldProductID in (10,11,13) and
fldCustomerID <> (select top 1 fldCustomerID from tblOrder where fldProductID not in(12))
توضیحات بخش where:
- شرط اول میگه سفارشاتی که شامل محصولات شماره 10، 11 و 13 هستند را نمایش بده
- شرط دوم میگه فقط مشتریانی که فاقد محصول شماره 12 هستند را نادیده بگیر
در نمونه بالا هدف از استفاده in و not in این هستش که بتونید محصولات بیشتری را در شرط لحاظ کنید.
خروجیی دستور بالا:
ضمیمه 153576
البته ممکنه راه های بهتری برای اینکار وجود داشته باشه ولی فعلا این به ذهنم رسیده
نقل قول: دستور فقط در کوئری
در نمونه بالا این امکان وجود داشت که تنها یک مشتری نادیده گرفته بشه. علامت <> و استفاده از top 1.
در نمونه پایین بجای استفاده از <> من از not in استفاده کردم و عبارت top 1 را حذف کردم تا خروجی دستور select بتونه تمام مقادیر را برگردونه. در نتیجه محدودیت تعداد مشتری هایی که باید نادیده گرفته بشن هم برداشته شده:
select
*
from
tblOrder
where
fldProductID in (10,11,13) and
fldCustomerID not in (select fldCustomerID from tblOrder where fldProductID not in(12))
نقل قول: دستور فقط در کوئری
یک راه این هست که اول id خریدارانی که محصول "ایران خودرو" خریدن رو پیدا کنین و بعد اونها رو از خروجی کنار بگذارین:
SELECT customer_name,... FROM customers
WHERE customer_id NOT IN
(SELECT customer_id FROM customers
INNER JOIN orders
ON customers.customer_id=orders.customer_id AND orders.product_name='IranKhodro')