On Fri, 8 Dec 2000 [EMAIL PROTECTED] wrote:
> Field Kodebaru, sudah saya cek,  tidak ada yang double pak oki, tapi begini
> sebenarnya
> kodeproduct kemarin itu maksud saya = prnbr (product refence number) .

Sepertinya kok jadi kurang pas di sini (saya jadi pakai asumsi); lebih
baik sekalian buat nama tabel dan kolomnya (field) di sini, jadi lebih
mudah (baris dari tabel mana mau di-copy ke mana).

> Dalam table prnbr itu memang ada yang sama tapi bisa dibedakan berdasarkan
> prmenbr( product Merchant number).
> misal
> 
> Select prnbr, prmenbr, merchantname from product
> kw001, 1, toko gramedia
> kw001, 2, toko gunung agung.
> 
> Nah yang proses updatenya itu yang mau saya update kode barangnya untuk
> toko gunung agung jadi
> gimana ini Update statementnya, mohon direvisi

Tapi... barangkali tabelnya begini:
product                           pindahkode
prnbr, prmenbr, merchantname      prnbrlama, prmenbrlama, prnbr, prmenbr

Tinggal menambah "and" saja di bagian "where":
update product set kodeproduct = 
(select z.kodebaru from pindahkode z where z.kodelama = x.kodeproduct)
from product x, pindahkode y
where x.kodeproduct = y.kodelama
Jadi:
update product set prnbr = (select z.prnbr from pindahkode z where
z.prnbrlama = y.prnbrlama and z.prmenbrlama = y.prmenbrlama),
prmenbr = (select a.prnbr from pindahkode a where
z.prnbrlama = y.prnbrlama and z.prmenbrlama = y.prmenbrlama)
from product x, pindahkode y
where x.prnbr = y.prnbrlama and x.prmenbr = y.prmenbrlama

Itu belum di-test, tapi... mestinya sih OK.

BTW, kalau bakal sering yang demikian, lebih baik tabel product dikasih
kolom (field) "identification". Kalau di Sybase, itu dideklarasikan sbg.:
create table product (id numeric identification, prnbr char(...), prmenbr
char(...)). Kolom id itu akan auto-increment, dan uniq dalam tabel.
Gunanya, bisa lebih mudah untuk mengganti (meng-update) lebih dari satu
kolom seperti dalam kasus di atas. Memang tidak langsung - ada
langkah-langkah tambahan yang perlu dilakukan - sehingga malah tidak bisa
satu SQL statement untuk mengganti, tapi melihat perintahnya jadi lebih
mudah.

Seandainya hal di atas terjadi pada saya, maka yang akan saya lakukan
adalah:
- menambah kolom "id" di tabel product
- membuat tabel pindahkode dengan diisi id, prnbr, prmenbr dari product
create table pindahkode (
 id numeric identity,
 prodid numeric,
 prnbrlama char(...), 
 prmenbrlama char(...), 
 prnbr char(...), 
 prmenbr char(...))
- menyalin nomor produk dan merchant ke pindahkode
 insert into pindahkode (prodid, prnbrlama, prmenbrlama) 
 select id, prnbr, prmenbr from product
- mengisi prnbr dan prmenbr di pindah kode dengan nomor baru pada setiap
prnbrlama dan prmenbrlama
- update tabel product, jika diperlukan
 update product set prnbr = y.prnbr, prmenbr = y.prmenbr
 from product x, pindahkode y
 where x.id = y.prodid

BTW, ada bagusnya juga, kalau memang sering-sering mengganti nomor produk,
bisa pasang trigger di tabel product untuk mengupdate prodid, prnbrlama,
prmenbrlama di pindahkode, jika tabel product di-update/insert/delete.

Oki




--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]

Kirim email ke