PDA

View Full Version : فیلتر رکوردها از بین سه جدول



Leyla2011
چهارشنبه 17 خرداد 1391, 09:35 صبح
سلام

سه تا جدول به شرح زیر داریم
جدول کالا
Idkala
Namekala
جدول موجودی:
Idkala
mojoodi
Idsell
جدول فروشگاه:
Idsell
Sellname
میخواهیم لیستی از تمام کالا ها داشته باشیم و موجودی فروشگاه 2 را هم داشته باشیم
توی یکinnerjoinاین کار امکان پذیره؟
یعنی اگه یک کالا در فروشگاه2موجودی نداشته باشد ولی در فروشگاه1 موجودی داشته باشد هم در لیست فروشگاه 2 با موجودی صفر ظاهر بشه

حمیدرضاصادقیان
چهارشنبه 17 خرداد 1391, 10:03 صبح
سلام.
بله. اگر کالا در هرفروشگاه وجود دارد با استفاده از کد کالا میتوانید یک Inner Join استفاده کنید و به نتیجه دلخواه برسید. ولی اگر کالا در فروشگاه 2 مثلا کلا وجود ندارد باید از Outer Join استفاده کنید به مقدار Null برمیگردونه که میتونید اونو به صفر تبدیل کنید.

Leyla2011
چهارشنبه 17 خرداد 1391, 10:35 صبح
سلام.
بله. اگر کالا در هرفروشگاه وجود دارد با استفاده از کد کالا میتوانید یک Inner Join استفاده کنید و به نتیجه دلخواه برسید. ولی اگر کالا در فروشگاه 2 مثلا کلا وجود ندارد باید از Outer Join استفاده کنید به مقدار Null برمیگردونه که میتونید اونو به صفر تبدیل کنید.

بله ولی مشکل موقعی پیش میاد که یه filter روی idsell بذاریم

فرض کنید کالا۱ در فروشگاه۱ تعریف شده ولی در فروشگاه ۲ موجودی نداره.
وقتی فیلتر را روی فروشگاه2 می‌گذاریم کالا1 را نشان نمیده راهی هست که این کالا را نشان بده اما با مقدار 0 یا null ؟

حمیدرضاصادقیان
چهارشنبه 17 خرداد 1391, 12:32 عصر
Query که نوشتید رو اینجا قرار بدید تا اصلاح بشه.

Leyla2011
چهارشنبه 17 خرداد 1391, 13:51 عصر
Query که نوشتید رو اینجا قرار بدید تا اصلاح بشه.



SELECT dbo.TblKala.CodeKala, dbo.TblMojoodi.Value, dbo.TblMojoodi.IdSell
FROM dbo.TblSell INNER JOIN
dbo.TblMojoodi ON dbo.TblSell.Id = dbo.TblMojoodi.IdSell RIGHT OUTER JOIN
dbo.TblKala ON dbo.TblMojoodi.IdKala = dbo.TblKala.Id
GROUP BY dbo.TblKala.CodeKala, dbo.TblMojoodi.Value, dbo.TblMojoodi.IdSell
HAVING (dbo.TblMojoodi.IdSell = 1)