PDA

View Full Version : مشکل در یک کوری پیچیده !!



NasimBamdad
سه شنبه 05 آذر 1392, 09:01 صبح
سلام

2 تا جدول دارم که تغریبا Field های مشابه دارند و می خواهیم مقادیرشان رو در جدول 3 بریزیم

جدول tbl1 با فیلد های id,name,tarefe_tamin
و
جدول tbl2 با فیلد های id,name,tarefe_khadamat
و
جدول tbl_total با فیلد های id,name,tarefe_tamin,tarefe_khadamat


///////////////////////

یکسری از رکورد های این 2 جدول با هم دیگه مشترک هستند و برای تشخیصشان از فیلد ID کمک می گیریم . یعنی ID یکسانی دارند . مثل کلید خارجی !!

حالا نیاز داریم :

در مرحله اول تمامی رکورد های مشترک رو که ID یکسان دارند در جدول tbl_total بریزیم که به کمک INNER JOIN این کار رو انجام میدیم .

یعنی مقادیر رو با یک Select و یک Inner Join پیدا می کنیم و در جدولمان Insert می کنیم

اما حالا اصل موضوع

در مرحله بعدی می بایست رکورد هایی که در جدول tbl1 قرار دارند و در جدول tbl2 قرار ندارند رو پیدا کنیم و در جدول مقصد یعنی tbl_total بریزیم

و برعکس می بایست رکورد هایی که در جدول tbl2 قرار دارند و در جدول tbl1 قرار ندارند رو پیدا و در tbl_total بریزیم .

یعنی اول رکورد های مشترک که به کمک INNER Join و در آخر رکورد های غیر مشترک رو در جدول مقصد بریزیم

این کار رو چه طوری باید انجام بدم ؟!

lastmory
سه شنبه 05 آذر 1392, 10:52 صبح
در مرحله بعدی می بایست رکورد هایی که در جدول tbl1 قرار دارند و در جدول tbl2 قرار ندارند رو پیدا کنیم و در جدول مقصد یعنی tbl_total بریزیم
با سلام
از UNION و
EXCEPT استفاده کن

y_ziaee
سه شنبه 05 آذر 1392, 12:23 عصر
سلام ذوست من
میشه کمی بیشتر توضیح بدهی. در مرحله اول آیا اطلاعات هر دو جدول را به جدول سوم انتقال میدهید با نه فقط اگر در هر دو جدول اطلاعات مشترک داشتیم فقط اطلاعات یکی از جداول را به جدول سوم منتقل میکنید؟


علم سه قدم دارد : قدم اول غرور مي آورد ، قدم دوم فروتني و خشوع مي آورد ، قدم سوم مي داند که هيچ نمي داند.

arbab333
سه شنبه 05 آذر 1392, 15:33 عصر
میتونی از outer join استفاده کنی

NasimBamdad
سه شنبه 05 آذر 1392, 15:39 عصر
سلام ذوست من
میشه کمی بیشتر توضیح بدهی. در مرحله اول آیا اطلاعات هر دو جدول را به جدول سوم انتقال میدهید با نه فقط اگر در هر دو جدول اطلاعات مشترک داشتیم فقط اطلاعات یکی از جداول را به جدول سوم منتقل میکنید؟


علم سه قدم دارد : قدم اول غرور مي آورد ، قدم دوم فروتني و خشوع مي آورد ، قدم سوم مي داند که هيچ نمي داند.

در مرحله اول رکورد های مشترک در هر شرایطی به جدول سوم منتقل میشه . هدف من ترکیب این 3 جدول هست

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

بخواطر اینکه در جدول سوم تعرفه ها رو باید طوری خاص برای غیر مشترک ها در نظر بگیرم . برای همین خاطر می بایست جداشون کنم



با سلام
از UNION و
EXCEPT استفاده کن


میشه مثال بزنید ؟



میتونی از outer join استفاده کنی


میشه مثال بزنید ؟ چند سری انجام دادم اما نشد !

NasimBamdad
سه شنبه 05 آذر 1392, 21:21 عصر
SELECT dbo.daroo_khadamat.dar_name, dbo.daroo_khadamat.dar_code, dbo.daroo_khadamat.tarefe AS tarefe_khadamat,
dbo.daroo_khadamat.sazman AS sazman_khadamat, dbo.daroo_khadamat.feranshiz AS feranshiz_khadamat, dbo.daroo_mosalah.tarefe AS tarefe_mosalah,
dbo.daroo_mosalah.sazman AS sazman_mosalah, dbo.daroo_mosalah.feranshiz AS feranshiz_mosalah
FROM dbo.daroo_khadamat INNER JOIN
dbo.daroo_mosalah ON dbo.daroo_khadamat.dar_code = dbo.daroo_mosalah.dar_code


این کوری من هست ، میشه کمک کنید ؟