View Full Version : مقایسه داده های دو Table
mehdik76
پنج شنبه 04 فروردین 1384, 12:41 عصر
سلام دوستان . من چطوری میتونم داده های دو تا Table با ساختار یکسان را با هم مقایشه کنم و اختلاف آن را در یک Table دیگه ذخیره کنم ؟
یاشار
پنج شنبه 08 اردیبهشت 1384, 10: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
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.