رفتن به مطلب

مشکل در LEFT outer Join


jaleel

ارسال های توصیه شده

با سلام بر همگی

 

من باید از چهار table در اسکوئل 2005 گزارش بگیرم ولی هنگامی که این چهار تیبل را با left join به هم متصل می کنم رکوردها را چندبار نمایش می دهد و باعث می شود که سرجمع های تعداد رکورد و مجموع ارقام اشتباه شود برای نمونه یک ریال اضافی کردن باعث می شود که گاهی 4 ریال اضافی نشان دهد. چه کنم ؟ که رکوردهای اضافی نشان داده نشود

با DISTINCT همه نمی شود کاری کرد یعنی باز هم رکورد اضافی نشان می دهد .

  • Like 1
لینک به دیدگاه
  • 3 هفته بعد...

راه حل :

چون تیبل دوم و سوم دارای رکورد های تکراری هست دچار این مشکل شده بودیم

مثلا

 

SELECT table1.fi1,table1.f2,table1.f3,table2.f1,table2.f2 FROM table1

left outer join on table1.f1 = table2.f1

اگر در table2 رکورد تکراری وجود داشته باشد درست عمل نمی کند

 

آن را باید بدین صورت نوشت

 

SELECT table1.fi1,table1.f2,table1.f3,t2.f1,t2.f2 FROM table1

left outer join {

SELECT * FROM table 2 where table2.f1 =1 } as t2 on table1.f1 = t2.f1

 

حتی اگر 10 تا تیبل هم باشد باید بدین روش عمل شود.

  • Like 1
لینک به دیدگاه
×
×
  • اضافه کردن...