نمایش نتایج 1 تا 11 از 11

نام تاپیک: حذف رکورد تکراری و backup

  1. #1
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350

    حذف رکورد تکراری و backup

    سلام دوستان عزیز

    من برنامه ای در دلفی 7 و SQL Server 2000 با ارتباط ADO دارم.
    و EXE برنامه را در هر یک از کامپیوترهای کلاینت نصب کرده ام و هرکدام به
    بانک SQL Server واقع دریک Windows 2000 Server وصل شده و کار می کنند و می خواهم:

    1-من یکسری اطلاعات به بانک import کردم ( ازimport خودSQL Server ) که چندین رکورد حدودا بیش از 15000 انها تکراری است چون توی بانک اصلی EXCEL من تکراری بود حال تکراری ها را چگونه حذف کنم.
    و اصولا هنگام importبوسیله SQL Server روشی برای اینکه چک کردن اگر تکرای بود نگیرد وجود دارد.

    2-دستورالملی در دلفی که کاربر بتواند از طریق کامپیوترهای کلاینت از بانک Backup بگیرد( آقای کشاوز مثل اینکه راه حلی داشت).

  2. #2
    دوست عزیزم،
    حذف رکوردهای تکراری راه حل ساده ای نداره اما چندین روش موجوده.
    مثلا میشه SELECT INTO انجام بدین و همزمان DISTINCT هم بکنین تا جدول جدیدی ایجاد بشه از رکوردهای غیر تکراری. بعد جدول قبلی رو حذف کنین تا جدول جدید جایگزین اون بشه.

  3. #3
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350
    سلام

    1-متشکر اما یک مقدار توضیح بیشتر بدهید.
    2-من بانکم را از Excel با خود sql بوسیله import وارد بانک کردم اگر روشی هم باشد که در همان Excel تکراری
    را حذف کنم برایم راحتتر و بهتر است بعد بانک بدون تکرار را وارد sql کنم.

  4. #4

    SELECT DISTINCT * INTO NewTable FROM MainTable
    GO
    SELECT * FROM NewTable

  5. #5
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350
    سلام
    من می خواهم که رکوردهایی که فیلد employee_number آنها تکراری است حذف شود.
    در ضمن دستورات برحسب چه فیلدی جدول را Unique می کنند.

  6. #6
    کاربر دائمی آواتار MShirzadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تهران
    پست
    325
    در ضمن دستورات برحسب چه فیلدی جدول را Unique می کنند.
    بر حسب تمام فیلد هایی که شما دارید در Select نام می برید که در این دستور آقای ثباتی

    SELECT DISTINCT * INTO NewTable FROM MainTable
    بر طبق تمام فیلد های Table آن را Unique می کند
    اما یک سئوال که داشتم این است که شما می خواهی رکورد هایی که فیلد employee_number آنها یکی است حذف شود و این یعنی اطلاعات دیگر فیلد ها با هم یکی است یا اینکه برات فقط یکیش مهم است
    یعنی داریم

    employee_number= 100
    name = 'Mohammad
    '

    و

    employee_number=100
    Name = 'ali
    '

    از این دوتا هر کودومش بمونه مهم نیست دیگه

  7. #7
    کاربر دائمی آواتار MShirzadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تهران
    پست
    325
    اگر شما منظورتون این بود که من در تاپیک قبلی گفتم می تونی به این روش مشکلت حل بشه اما اگر چیز دیگه ای منظورت هست بگو تا ببینم می تونم بنویسم یا نه.
    شما باید یه فیلد از نوع AutoNumber داشته باشی و اسم اون ID باشه بعد اگر Query زیر را اجرا کردی اون چیزی که می خوای برات درست میشه

    Declare @T_ID Table(ID int)
    ,@T_employee_number Table(ID int)
    Declare @id int
    Declare C Cursor For Select Distinct employee_number From Tbl_Name
    Open C
    Fetch C into @id
    While(@@Fetch_Status=0)
    Begin
    insert into @T_employee_number (id)values (@id)
    Select @id=MAX(ID) From Tbl_Name Where employee_number = @ID
    insert into @T_ID (id)values (@id)
    Fetch Next From C into @id
    End
    Deallocate C
    Delete From Tbl_Name Where ID Not in (Select * From @T_ID) And employee_number in (Select * From @T_employee_number)

  8. #8
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350
    سلام
    1-
    employee_number= 100
    name = 'Mohammad'
    و
    employee_number=100
    Name = 'ali
    برای من از این دوتا هر کودومش بمونه مهم نیست.

    2-
    من جدولم یک Autonumber دارد به اسم sicard و در نتیجه هیچ وقت دو رکورد تمام فیلدهایشان یکی نمی شوند (دو رکورد تمام فیلدهایشان یکی به غیر از sicard می تواند باشد).

    پس با این شکل می خواهم جدول برحسب رکوردهایی که فیلد employee_number آنها تکراریست ، حذف شود (Uniqueگردد) .

  9. #9
    کاربر دائمی آواتار MShirzadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تهران
    پست
    325
    خوب دوست عزیز این کدی که من برات گذاشتم رو تست می کردی بهت حواب می ده من ائن رئ تست کردم
    ولی خوب کد زیر رو هم یکی از دوستان در تاپیک دیگری گفت که به نظر من بهتر است

    Delete From TblA Where sicard Not in (Select  Min(sicard) From TblA Group by employee_Number))

  10. #10
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350
    ---------- Delete repeat employee_Number ---------------
    Delete From CardTable Where sicard Not in (Select Min(sicard) From CardTable Group by employee_Number)

    سلام
    این دستور به خوبی کار می کند و خود دستور را خوب نفهمیدم!
    حال بخواهیم سورت صعودی هم برحسب employee_Number بکند هم بفرمایید متشکر می شوم.

  11. #11
    کاربر دائمی آواتار MShirzadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تهران
    پست
    325
    متوجه نمی شم کجا می خوای Sort کنی ؟؟

تاپیک های مشابه

  1. BackUp در یک خط
    نوشته شده توسط مطهر در بخش SQL Server
    پاسخ: 29
    آخرین پست: چهارشنبه 20 آذر 1387, 20:36 عصر
  2. چطور میشه Backup گرفت ؟
    نوشته شده توسط iman_s52 در بخش SQL Server
    پاسخ: 25
    آخرین پست: چهارشنبه 13 آذر 1387, 11:51 صبح
  3. Cmplete Backup - Differential Backup و Transaction Log
    نوشته شده توسط odiseh در بخش SQL Server
    پاسخ: 7
    آخرین پست: دوشنبه 19 شهریور 1386, 21:04 عصر
  4. backup گیری در اکسس
    نوشته شده توسط مجید رجبی در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: جمعه 05 مرداد 1386, 17:51 عصر
  5. backup گیری از بانک
    نوشته شده توسط Batman در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: چهارشنبه 03 مرداد 1386, 12:16 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •