Maaf baru balas (habis ada tugas luar, messege saya
resume)
Thx atas sharingnya Pak Ferry.
Terus terang justru saya sedang kesulitan bagaimana
script buat PL/SQL nya, yang bisa mengupdate secara
langsung Tabel TRANSAKSI dengan referensi Tabel
UPDATE.
Perlu diketahui juga bahwa tidak semua data di Tabel
TRANSAKSI ada di Tabel UPDATE jadi hanya yang masuk
Tabel UPDATE saja yang dirubah (ini hanya saya ambil
contoh 1 tabel yang di update, padahal saya akan
update 5 tabel dengan kondisi/referensi yang sama).
Saya tunggu tanggapannya.
Regards,
Andi
Message: 5
Date: Wed, 29 Jun 2005 11:19:57 +0700
From: "Ferry" <[EMAIL PROTECTED]>
Subject: Re: Re: Minta bantuan SQL
Lanjutan....
Untuk mengupdate secara langsung di Tabel Transaksi
dapat digunakan dengan PL/SQL,
namun perlu kode untuk menDELETE row yang sudah diSUM.
Cara lain dengan perintah SQL:
1. buat copy tabel Transaksi dengan
CREATE TABLE transaksi_bak AS SELECT * FROM
transaksi;
2. Jalankan DROP TABLE TRANSAKSI PURGE;
(Hindari DROP TABLE TRANSAKSI CASCADE CONSTRAINTS
PURGE;)
Perintah ini gagal jika ada tabel lain yang
mereferensi tabel Transaksi shg harus diputuskan dulu
constraint foreign key yang ada.
3.
CREATE TABLE transaksi AS
SELECT t.NO_TRX , u.KD_BRG_N, t.DATE_TRX, SUM(t.qty)
qty
FROM transaksi t, updateku u
WHERE t.kd_brg = u.kd_brg_O
GROUP BY t.NO_TRX , u.KD_BRG_N, t.DATE_TRX
order by 1;
4. Buat indeks dan constraints serta buat kembali
foreign key yang
telah
diputuskan pada
langkah 2.
regs,
ferry.
Message: 4
Date: Wed, 29 Jun 2005 10:04:04 +0700
From: "Ferry" <[EMAIL PROTECTED]>
Subject: Re: Re: Minta bantuan SQL
Tabel TRANSAKSI
------------------------------
NO_TRX KD_BRG DATE_TRX QTY
------------------------------
005 CPU-1 06/23/2005 1
003 CPU1 05/25/2005 2
003 CPU 05/28/2005 3
002 MNTR1 05/30/2005 1
004 MNTR-1 05/25/2005 2
006 MNTR 1 05/20/2005 3
Tabel UPDATE
------------------
KD_BRG_O KD_BRG_N
------------------
CPU-1 CPU 1
CPU1 CPU 1
CPU CPU 1
MNTR1 MNTR 1
MNTR-1 MNTR 1
MNTR 1 MNTR 1
Tabel TRANSAKSI yg diharapkan
-----------------------------
NO_TRX KD_BRG DATE_TRX QTY
-----------------------------
005 CPU 1 06/23/2005 1
003 CPU 1 05/25/2005 5
002 MNTR 1 05/30/2005 1
004 MNTR 1 05/25/2005 2
006 MNTR 1 05/20/2005 3
Asumsi Saya: Untuk setiap NO_TRX memiliki DATE_TRX
yang sama
create table TRANSAKSI (
NO_TRX varchar2(3),
KD_BRG VARCHAR2(6),
DATE_TRX DATE,
QTY NUMBER);
alter session set nls_date_format = 'mm/dd/rrrr';
INSERT INTO TRANSAKSI VALUES('005', 'CPU-1'
,'06/23/2005',1);
INSERT INTO TRANSAKSI VALUES('003', 'CPU1'
,'05/25/2005',2);
INSERT INTO TRANSAKSI VALUES('003', 'CPU'
,'05/25/2005',3);
INSERT INTO TRANSAKSI VALUES('002', 'MNTR1'
,'05/30/2005',1);
INSERT INTO TRANSAKSI VALUES('004',
'MNTR-1','05/25/2005',2);
INSERT INTO TRANSAKSI VALUES('006', 'MNTR
1','05/20/2005',3);
create table UPDATEKU (KD_BRG_O VARCHAR2(6),KD_BRG_N
VARCHAR2(6));
INSERT INTO updateku values('CPU-1', 'CPU 1');
INSERT INTO updateku values('CPU1', 'CPU 1');
INSERT INTO updateku values('CPU', 'CPU 1');
INSERT INTO updateku values('MNTR1', 'MNTR 1');
INSERT INTO updateku values('MNTR-1', 'MNTR 1');
INSERT INTO updateku values('MNTR 1', 'MNTR 1');
SQL> SELECT * FROM TRANSAKSI ;
NO_ KD_BRG DATE_TRX QTY
--- ------ ---------- ----------
005 CPU-1 06/23/2005 1
003 CPU1 05/25/2005 2
003 CPU 05/25/2005 3
002 MNTR1 05/30/2005 1
004 MNTR-1 05/25/2005 2
006 MNTR 1 05/20/2005 3
SQL> SELECT * FROM updateku;
KD_BRG KD_BRG
------ ------
CPU-1 CPU 1
CPU1 CPU 1
CPU CPU 1
MNTR1 MNTR 1
MNTR-1 MNTR 1
MNTR 1 MNTR 1
SQL> SELECT t.NO_TRX , u.KD_BRG_N, t.DATE_TRX,
SUM(t.qty) qty
2 FROM transaksi t, updateku u
3 WHERE t.kd_brg = u.kd_brg_O
4 GROUP BY t.NO_TRX , u.KD_BRG_N, t.DATE_TRX
5 ORDER BY 1;
NO_ KD_BRG DATE_TRX QTY
--- ------ ---------- ----------
002 MNTR 1 05/30/2005 1
003 CPU 1 05/25/2005 5
004 MNTR 1 05/25/2005 2
005 CPU 1 06/23/2005 1
006 MNTR 1 05/20/2005 3
semoga membantu,
ferry
----- Original Message -----
From: "Jack Mania" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, June 28, 2005 3:26 PM
Subject: [indo-oracle] Re: Minta bantuan SQL
RESEND
Please help me...
--- Jack Mania <[EMAIL PROTECTED]> wrote:
Hallo teman indo-oracle semua, saya minta
sharingnya.
misalnya saya punya Tabel TRANSAKSI
NO_TRX KD_BRG DATE_TRX QTY
------ ------ ------------ ---
005 CPU-1 06/23/2005 1
003 CPU1 05/25/2005 2
003 CPU 05/28/2005 3
002 MNTR1 05/30/2005 1
004 MNTR-1 05/25/2005 2
006 MNTR 1 05/20/2005 3
dan tabel UPDATE
KD_BRG_O KD_BRG_N
-------- --------
CPU-1 CPU 1
CPU1 CPU 1
CPU CPU 1
MNTR1 MNTR 1
MNTR-1 MNTR 1
MNTR 1 MNTR 1
Pertanyaan saya gimana perintah SQL/Procedure untuk
mengupdate KD_BRG di tabel TRANSAKSI sesuai dengan
yang ada di tabel UPDATE (KD_BRG_N).
Dan ini dengan syarat jika NO_TRX sama maka QTY akan
di jumlah dalam satu record sedangkan recod yang
satunya
akan dihapus.
Terima kasih atas abntuannya.
Regards,
Andi
NB:
Output yang saya minta spt berikut :
Tabel TRANSAKSI
NO_TRX KD_BRG DATE_TRX QTY
------ ------ ---------- ---
005 CPU 1 06/23/2005 1
003 CPU 1 05/25/2005 5
002 MNTR 1 05/30/2005 1
004 MNTR 1 05/25/2005 2
006 MNTR 1 05/20/2005 3
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
--
-----------I.N.D.O - O.R.A.C.L.E---------------
Keluar: [EMAIL PROTECTED]
Website: http://indo-oracle.blogspot.com
-----------------------------------------------
Bergabung dengan Indonesia Thin Client User Groups,
Terminal Server, Citrix, New Moon Caneveral, di:
http://indo-thin.vze.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/indo-oracle/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/