View Full Version : حذف رکوردهای با تعدادی از فیلدهای تکراری
ali_divsalar
دوشنبه 19 تیر 1385, 13:27 عصر
موقع استفاده از group by فقط می تونیم همان فیلدهای قرار گرفته جلوی group by رو جلو select قرار بدیم.درحالی که من می خوام همه فیلدها (چه فیلدهایی که تکراری هستند و یا تکراری نیستند ) ظاهر شوند. (با در نظر گرفتن این نکته که می دانیم فقط یکی از مقادیر فیلدهای غیر تکراری براساس شرطی که ما تعیین می کنیم ظاهر خواهند شد)
بعبارت دیگر ، می تونید یه query بنویسید که کار distinct را رو چند فیلد خاص انجام بده و در نتیجه کار همه فیلدها وجود داشته باشند؟
reza_rad
دوشنبه 19 تیر 1385, 14:11 عصر
بعبارت دیگر ، می تونید یه query بنویسید که کار distinct را رو چند فیلد خاص انجام بده و در نتیجه کار همه فیلدها وجود داشته باشند؟
باید group by زدن شما طوری باشه که توی منطق کار مشکلی پیش نیاد.
فکر کنم اگه سوالتون رو روی یک مثال عملی بپرسید بهتر بشه جواب داد.
AminSobati
دوشنبه 19 تیر 1385, 14:48 عصر
موقع استفاده از group by فقط می تونیم همان فیلدهای قرار گرفته جلوی group by رو جلو select قرار بدیم.درحالی که من می خوام همه فیلدها (چه فیلدهایی که تکراری هستند و یا تکراری نیستند ) ظاهر شوند. (با در نظر گرفتن این نکته که می دانیم فقط یکی از مقادیر فیلدهای غیر تکراری براساس شرطی که ما تعیین می کنیم ظاهر خواهند شد)
بعبارت دیگر ، می تونید یه query بنویسید که کار distinct را رو چند فیلد خاص انجام بده و در نتیجه کار همه فیلدها وجود داشته باشند؟
دوست عزیزم،
منطق این کار اشکالی داره. فرض کنید یک جدول دارید با فیلدهای FName و LName. حالا دو رکورد داریم، یکی Ali Ahmadi و یکی Ali Asadi.
وقتی شما Distinct روی FName بگیرید، از دو Ali یکیش میاد. حالا LName رو بر طبق چه ملاکی انتخاب میکنید که Asadi ظاهر بشه یا Ahmadi؟
ali_divsalar
سه شنبه 20 تیر 1385, 13:55 عصر
احتمالا من بد سوالم رو مطرح کردم.
من می خوام اطلاعات تکراری جدولی از سیستم یه سازمان دولتی که دوبار و به دو شکل متفاوت ثبت شده اند رو حذف کنم.این رکوردها از نظر سیستم تکراری نیستند چون دو رکورد عین هم نیستند ولی ما آنها را تکراری قلمداد می کنیم. مثلا فیلدهای اساسی تکراری و فیلدهای دیگر به دو شکل وارد شده اند و چون کنترلی روشون نبوده جلوی کار رو نگرفته.من می خوام کاری مشابه group by روی فیلدهای اساسی که شامل چند کد هستند ( و می خوام آنها را PK کنم)
پیاده کنم .یعنی دورکورد را به یک رکورد تبدیل کنم.
حالا زیاد مهم نیست کدام فیلدهای غیر تکراری توی رکورد جدیدم بیاد نهایتا یه شرط می زارم که فیلد کاملتر در رکورد جدیدم قراربگیره
مثال :
fieldnam | code, idno, sequent, organ ,birth_date
-------------------------------------------------------|-----------------
1351 تربیت بدنی 1 43 25 | رکورد اول
351 تربیت 1 43 25 | رکورد دوم
--------------------------------------------------------------------------
ali_divsalar
سه شنبه 20 تیر 1385, 13:57 عصر
احتمالا من بد سوالم رو مطرح کردم.
من می خوام اطلاعات تکراری جدولی از سیستم یه سازمان دولتی که دوبار و به دو شکل متفاوت ثبت شده اند رو حذف کنم.این رکوردها از نظر سیستم تکراری نیستند چون دو رکورد عین هم نیستند ولی ما آنها را تکراری قلمداد می کنیم. مثلا فیلدهای اساسی تکراری و فیلدهای دیگر به دو شکل وارد شده اند و چون کنترلی روشون نبوده جلوی کار رو نگرفته.من می خوام کاری مشابه group by روی فیلدهای اساسی که شامل چند کد هستند ( و می خوام آنها را PK کنم)
پیاده کنم .یعنی دورکورد را به یک رکورد تبدیل کنم.
حالا زیاد مهم نیست کدام فیلدهای غیر تکراری توی رکورد جدیدم بیاد نهایتا یه شرط می زارم که فیلد کاملتر در رکورد جدیدم قراربگیره
مثال :
fieldnam | code, idno, sequent, organ ,birth_date
-------------------------------------------------------|-----------------
1351 تربیت بدنی 1 43 25 | رکورد اول
351 تربیت 1 43 25 | رکورد دوم
--------------------------------------------------------------------------
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.