/* */

Thursday, March 17, 2011

Re: [belajar-access] Re: Menghapus Duplikat Data



Nambah dikit mas Aksan.
 
Kalau mau dijadikan satu (tanpa menggunakan tabel temporary) bisa dituliskan sbb:
 
DELETE *
FROM TBL_CONTOH
WHERE
[KODE] & [NAMA] Not In
(SELECT
     [A].[KODE] & [A].[FNAMA] AS KUNCI
     FROM
           (SELECT KODE, FIRST(NAMA) AS FNAMA FROM tbl_Contoh GROUP BY KODE)  AS A
);
 
Penjelasannya:
    1. Buat kombinasi Kode dan Nama untuk kombinasi yang diinginkan ada yaitu kode + nama pertama.
           
        SELECT
              [A].[KODE] & [A].[FNAMA] AS KUNCI
        FROM
           (SELECT KODE, FIRST(NAMA) AS FNAMA FROM tbl_Contoh GROUP BY KODE)  AS A
 
    2. Hapus isi tabel yang kombinasi Kode & Nama nya  BUKAN hasil dari nomor 1
 
       DELETE *
       FROM TBL_CONTOH 
       WHERE
               [KODE] & [NAMA] Not In
               ( KOMBINASI KODE & NAMA HASIL DARI NOMOR 1)

 
 
Salam hangat dan jabat erat,
MBA
 
----- Original Message -----
Sent: Wednesday, March 16, 2011 17:20
Subject: Re: [belajar-access] Re: Menghapus Duplikat Data

 

Kok jawabnya kayak orang pasrah, him ... :)
hehehe....

Ada beberapa cara, tetapi saya pilihkan cara query saja.
Asumsi, 'data ganda' yang akan diambil satu saja itu adalah data yang paling awal ditemui / paling atas.

Buat query seperti ini:

SELECT Kode, First(Nama) AS G_Nama
FROM TableAnu
GROUP BY Kode

Jika hanya daftar yang anda butuhkan, pekerjaan selesai sampai di sini.
Jika masih harus mengolah data aslinya agar 'tidak duplikat', maka query ini bisa anda lempar ke temp table terlebih dahulu :

SELECT Kode, First(Nama) AS G_Nama
INTO Z_TableAnu
FROM TableAnu
GROUP BY Kode

Setelah itu kosongkan tabel aslinya:

DELETE * FROM TableAnu

Lalu pindahkan isi temp table kembali ke tabel awal:

INSERT INTO TableAnu (Kode, Nama)
SELECT Kode, G_Nama FROM Z_TableAnu

Jika berhasil, temporary table sudah bisa dibuang.

DROP TABLE Z_TableAnu.


Hati-Hati:
Jika TableAnu ada cascade delete, maka tabel2 relasi bisa kecelakaan terhapus juga saat tableAnu dikosongkan.
Jika proses pemindahan temp table ke tableAnu gagal, jangan sampai perintah drop table berjalan, agar temp table yang mengandung data tidak kadung hilang.


Cara lain adalah dengan menggunakan operasi recordset.

Aksan Kurdin

On 3/16/2011 5:06 PM, him mah wrote:

 

seperti yang ini saja pak

Kode Nama
A1 ABC
A2 BDC

Pada tanggal 16/03/11, Aksan Kurdin <aksan.kurdin@gmail.com> menulis:
> Begini saja, saya belum nangkap keinginan him mah, dan sebaliknya.
>
> Data ini :
>
> Kode Nama
> A1 ABC
> A2 BDC
> A1 EFG
> A1 HIJ
>
> Mau dijadikan bagaimana ?
> Apakah seperti ini:
>
> Kode Nama
> A1 ABC
> A2 BDC
>
>
>
> Atau seperti ini:
>
> Kode Nama
> A1 HIJ
> A2 BDC
>
>
>
> Atau seperti ini:
>
> Kode
> A1
> A2
>
>
> Aksan Kurdin
>
> On 3/16/2011 4:22 PM, him mah wrote:
>>
>> tapi kasusnya emang seperti itu pak, untuk kolom KODE itu harusnya
>> cuma ada satu, untuk data yang diambil terserah yang penting munculnya
>> untuk KODE itu cuma satu
>>
>> Pada tanggal 16/03/11, Aksan Kurdin <aksan.kurdin@gmail.com
>> <mailto:aksan.kurdin%40gmail.com>> menulis:
>> > Maksud pertanyaan saya begini:
>> >
>> > Data anda itu sudah atomic, tidak duplicat.
>> > A1/ABC dan A1/EFG itu berbeda.
>> > Jika hanya satu A1 yang mau di ambil, itu A1 yang mana ?
>> >
>> > Aksan Kurdin
>> >
>> > On 3/16/2011 1:19 PM, him mah wrote:
>> >>
>> >> iya pak, kalau datanya sedikit tidak masalah, masalah timbul kalau
>> >> data banyak
>> >> saya coba google dan ketemu
>> >>
>> >> http://support.microsoft.com/kb/209183
>> >>
>> >> sementara bisa teratasi
>> >> mungkin ada cara lain
>> >>
>> >> Pada tanggal 15/03/11, aksankurdin <aksan.kurdin@gmail.com
>> <mailto:aksan.kurdin%40gmail.com>
>> >> <mailto:aksan.kurdin%40gmail.com>> menulis:
>> >> > buka dalam datasheet, select dengan mouse, tekan tombol
>> >> > delete...hehehehehehe......
>> >> >
>> >> > dari data yg sama (beda description), yang mau disisain yang mana?
>> >> >
>> >> > aksan kurdin
>> >> >
>> >> > --- In belajar-access@yahoogroups.com
>> <mailto:belajar-access%40yahoogroups.com>
>> >> <mailto:belajar-access%40yahoogroups.com>, him mah <himmah.mlg@...>
>> wrote:
>> >> >>
>> >> >> misal saya punya tabel seperti ini
>> >> >>
>> >> >> KODE NAMA
>> >> >> A1 ABC
>> >> >> A2 BDC
>> >> >> A1 EFG
>> >> >> A1 HIJ
>> >> >>
>> >> >> dari tabel diatas untuk KODE A1 terdapat tiga record
>> >> >> yang jadi pertanyaan saya
>> >> >> bagaimana cara menghapus data yang double sehingga yang ditampilkan
>> >> >> cuma satu saja (menghapus dua data lainnya)
>> >> >>
>> >> >> terima kasih
>> >> >>
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>




__._,_.___


SPAM IS PROHIBITED



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

No comments:

Post a Comment