PDA

View Full Version : مقایسه بین رکوردهای یک جدول



firoozi90
شنبه 14 دی 1392, 14:43 عصر
سلام دوستان
چطور میشه T-SQL ای نوشت که رکوردهای یک جدول را مقایسه کنه
مثلا دستوری نوشت که اگر مقادیر یک فیلد در بین دو رکورد با هم برابر بود یکیشو حذف کنه
به عنوان مثال
در جدول زیر چونکه رکور اول و دوم فیلد Family اون برابره ،رکورد دومی حذف بشه


name family Id
1 mo fi
2 sa fi
2 ir jo



ممنون میشم اساتید عزیز کمک کنند

benyaminrahimi
شنبه 14 دی 1392, 20:22 عصر
ره ساده اما سنگینش نوشتن یک کرسر هست که رکورد ها تک تک بررسی شوند و در داخل کرسر در صورت وجود شرط فرمانی مثل delete اجرا شه

firoozi90
یک شنبه 15 دی 1392, 08:18 صبح
ره ساده اما سنگینش نوشتن یک کرسر هست که رکورد ها تک تک بررسی شوند و در داخل کرسر در صورت وجود شرط فرمانی مثل delete اجرا شه
منظورتونو متوجه نمیشم میشه با مثال توضیح بدید
ممنونم

hamid_hr
یک شنبه 15 دی 1392, 09:30 صبح
select Name,MIN(Id_City) , COUNT(name) from City
group by Name

firoozi90
یک شنبه 15 دی 1392, 10:07 صبح
select Name,MIN(Id_City) , COUNT(name) from City
group by Name
مرسی از پاسخت
اما این جواب سوال من نیست

Davidd
یک شنبه 15 دی 1392, 11:31 صبح
تشخيص تكراري بودن يك فيلد كار سختي نيست ولي اينكه كدوم ركوردو ميخواي حذف كني سواله؛

SELECT family , COUNT(id) FROM Table_Name
GROUP BY family

از خروجي اين دستور ميتوني بفهمي كدوم فاميل بيشتر از يك بار تكرار شده. ستون COUNT(id) تعداد تكرار هر فاميلو نشون ميده.

hossein_h62
یک شنبه 15 دی 1392, 12:59 عصر
مرسی از پاسخت
اما این جواب سوال من نیست
انجامش کار راحتیه فقط سوالتون چند تا نکته مبهم داره:
برای مثال 5 رکورد وجود داره که یک فیلدشون مقدار یکسانی داره، حالا سوال اینجاست که آیا 4 رکورد باید حذف بشن؟ کدامیک ؟

firoozi90
یک شنبه 15 دی 1392, 13:39 عصر
انجامش کار راحتیه فقط سوالتون چند تا نکته مبهم داره:
برای مثال 5 رکورد وجود داره که یک فیلدشون مقدار یکسانی داره، حالا سوال اینجاست که آیا 4 رکورد باید حذف بشن؟ کدامیک ؟

بزارید بیشتر توضیح بدم من چندین رکورد داشتم با آی دی 1 بعد چندین رکورد دیگه ای به این جدول اضافه شد که آی دیشون 2 بود.که خیلی از رکوردهای دقیقا داده هاشون مثل هم هستش فقط آی دیشون فرق داره و همچنین خیلی هاشونم که مربوط به آی دی 2 هست داده های جدیدی دارند. حالا من میخوام با دستور یه مقایسه انجام بدم طوری که اونایی که فیلد به فرض Name اشون با هم برابره ، اون رکوردی که آی دیش 2 هست را حذف کنه و اونایی هم که باقی میموند و مثل هم نیستند همشون آی دیشو 1 کنه.

firoozi90
دوشنبه 16 دی 1392, 12:55 عصر
کسی نیست کمک کنه؟