jaleel 40 ارسال شده در 28 اسفند، 2010 با سلام بر همگی من باید از چهار table در اسکوئل 2005 گزارش بگیرم ولی هنگامی که این چهار تیبل را با left join به هم متصل می کنم رکوردها را چندبار نمایش می دهد و باعث می شود که سرجمع های تعداد رکورد و مجموع ارقام اشتباه شود برای نمونه یک ریال اضافی کردن باعث می شود که گاهی 4 ریال اضافی نشان دهد. چه کنم ؟ که رکوردهای اضافی نشان داده نشود با DISTINCT همه نمی شود کاری کرد یعنی باز هم رکورد اضافی نشان می دهد . 1
jaleel 40 مالک ارسال شده در 15 فروردین، 2011 راه حل : چون تیبل دوم و سوم دارای رکورد های تکراری هست دچار این مشکل شده بودیم مثلا 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 تا تیبل هم باشد باید بدین روش عمل شود. 1
ارسال های توصیه شده