Update data dari tabel lain
Tuesday, October 18, 2011 8:34Pernahkan anda mengupdate data yang jumlahnya ribuan yang nilainya berbeda-beda dan data diambil dari tabel lain ataupun tabel sementara untuk menampung nilai data terakhir, contoh kasus:
Tabel Barang:
CREATE TABLE barang ( id_brg number(10) not null, nm_brg varchar2(50) not null, harga varchar2(50), CONSTRAINT pk_brg PRIMARY KEY (id_brg) );
INSERT INTO barang
(id_brg,nm_brg,harga)VALUES
(B1, ‘ROTI’, ’3000′);INSERT INTO barang
(id_brg,nm_brg,harga)VALUES
(B2, ‘SIRUP’, ’7500′);INSERT INTO barang
(id_brg,nm_brg,harga)VALUES
(B3, ‘SELAI’, ’5000′);INSERT INTO barang
(id_brg,nm_brg,harga)VALUES
(B4, ‘FANTA 1L’, ’12500′);
BARANG:
| ID_BRG | NM_BRG | HARGA |
|---|---|---|
| B1 | ROTI | 3000 |
| B2 | SIRUP | 7500 |
| B3 | SELAI | 5000 |
| B4 | FANTA 1L | 12500 |
Nah dari tabel barang tersebut kita ingin mengupdate harga baru yang kita ambil dari table lain misalkan table sup_brg dengan kondisi data seperti dibawah ini:
SUP_BRG:
| ID_BRG_SUP | KD_SUP | HARGA |
|---|---|---|
| B1 | S01 | 5000 |
| B2 | S01 | 8500 |
| B3 | S03 | 5500 |
| B5 | S07 | 12500 |
Sql untuk update data dari tabel lain untuk kasus diatas adalah sebagai berikut:
UPDATE barang
SET harga = ( SELECT sup_brg.harga
FROM sup_brg
WHERE sup_brg.id_brg_sup = barang.id_brg)
WHERE EXISTS
( SELECT sup_brg.harga
FROM sup_brg
WHERE sup_brg.id_brg_sup = barang.id_brg);
Maka hasil akhirnya tabel Barang:
| ID_BRG | NM_BRG | HARGA |
|---|---|---|
| B1 | ROTI | 5000 |
| B2 | SIRUP | 8500 |
| B3 | SELAI | 5500 |
| B4 | FANTA 1L | 12500 |
Jangan lupa komentarnya??!!
