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]