PDA

View Full Version : چگونگی مقایسه 2 جدول



Future
شنبه 23 مهر 1384, 14:13 عصر
سلام دوستان
در پاراداکس یک گزینه وجود دارد که می یاد دوتا جدول را با هم مقایسه می کنه و رکوردهایی که در جدول اول است را از بین می برد تا با دومی برابر شود،منظورم همان دستور subtract می باشد ولی می خواستم بدونم در اس کیو ال برای انجام اینکار چه باید کرد یعنی میشه کاری کرد که محتویات 2 جدول که باهم مغایرت دارد را نشان داد.

AminSobati
یک شنبه 24 مهر 1384, 23:19 عصر
دوست عزیزم،
البته این به معیارهای شما بستگی داره که چقدر کار مقایسه سخت یا آسان بشه. یعنی شرایطی که تعیین میکنید مهمه. گاهی ممکنه فقط تفاوت در IDها رو ملاک قرار بدین و با دستور Delete و Join ساده، کار حل بشه. ولی گاهی ممکنه مقایسه فیلد به فیلد مد نظرتون باشه که کار رو مشکل میکنه. ولی نرم افزاری برای مقایسه نوشته شدن که اگر در اینترنت جستجو کنین، Demo رو در اختیارتون قرار میده

Future
دوشنبه 25 مهر 1384, 06:29 صبح
سلام دوست عزیز
یعنی در اس کیو ال نمیشه فیلد به فیلد مقایسه کرد؟؟؟؟؟؟؟؟؟
دستوری وجود نداره؟؟؟

AminSobati
دوشنبه 25 مهر 1384, 07:21 صبح
وجود داره ولی کار ساده ای نیست. در نرم افزارهای دیگه اگر چنین امکانی میبینید، شرکت سازنده نرم افزار زحمتش رو برای شما کشیده. ولی مایکروسافت چنین ابزاری برای SQL Server ارائه نکرده (سیاست همیشگی مایکروسافت برای تقویت Third Party!)

mahboob
دوشنبه 25 مهر 1384, 07:27 صبح
:لبخندساده :لبخندساده سلام
امکان مقایسه دو جدول وجود دارد
شما می توانید با نوشتن یک sp این کار را انجام دهید
در sp خود فیلدهای هر دو جدول را select کرده و با گذاشتن شرط( where) خود مثلا فیلدهای اضافی جدول اول را Delete کنید

Achchan
دوشنبه 25 مهر 1384, 13:00 عصر
You first want to know table1 MINUS table2,This is a set operator that is unfortunately not available on SQL Server 2000(In SQL Server 2005 it called EXCLUDE) you can do this by submitting such a query:
select <column_list> from table1 where not in (select <column_list> from table2) You note that the header of both sets should be identical,I mean you should select identical column_list in both places.
You can insert the result set in a temporary table (for reporting and documentation purpose) and then delete those rows from the table1.
Hope this help