PDA

View Full Version : مقایسه داده های دو Table



mehdik76
پنج شنبه 04 فروردین 1384, 11:41 صبح
سلام دوستان . من چطوری میتونم داده های دو تا Table با ساختار یکسان را با هم مقایشه کنم و اختلاف آن را در یک Table دیگه ذخیره کنم ؟

یاشار
پنج شنبه 08 اردیبهشت 1384, 09:44 صبح
فرض کنیم که دو تا جدول ساختارشون مثل این باشه :





CourseId bigint Primary Key,
Instructor nvarchar,
RoomNum char(2)
ُ


میتونیم اشتراک ردیف‌هایی رو که تو جدول اول هست ولی تو دومی نیست با دریف‌هایی که تو دومی هست و تو اولی نیست رو با استفاده از دستور Select زیر بگیریم.







SELECT cDo.*

FROM tblCourses2 cDo

WHERE NOT EXISTS (

SELECT cYek.*

FROM tblCourses1 sYek

WHERE cYek.CourseId=cDo.CourseId AND

cYek.Instructor =cDo.Instructor AND

cYek.RoomNum=cDo.RoomNum)

UNION

SELECT cYek.*

FROM tblCourses1 cYek

WHERE NOT EXISTS (

SELECT cDo.*

FROM tblCourses2 cDo

WHERE sDo.CourseId=cYek.CourseId AND

cDo.Instructor=cYek.Instructor AND

cDo.RoomNum=cYek.RoomNum)


البته این Select فقط روی MSSQL و MSDE کار میکنه، چون فکر کنم Union دستور T-SQL باشه. روی Access امتحان نکردم ولی اگر کار نکرد حتما یه دستور JET-Sql معادلش رو می‌تونین تو اینترنت پیدا کنید.

از داخل برنامه یه SqlCommand ایجاد میکنیم و مقدار CommandText ش رو برابر دستور بالا قرار میدیم و متد SqlComman.Execute رو اجرا میکنیم که یک DataTable برمی‌گردونه. بعد هم هر بلایی خواستیم سرش میاریم.



ُSelect statement from :
Transact-SQL Cookbook
By Jonathan Gennick, Ales Spetic