menggabungkan dua tabel ke satu tabel dengan field yang di tentukan

abel detail_barangmasuk dengan rincian :

- id

- detfaktur

- idsup

- detbrgkode

- detmatkode

- detsubtotal1

tabel detail_materialkeluar dengan rincian :

- id

- detfaktur

- idsup

- detmatkode

- detsubtotal2

ambil data dari kedua tabel tersebut untuk di tempatkan ke tabel data_baru dengan rincian :

- idsup

- matjenis

- beratmatkeluar

- beratmatmasuk

dengan kondisi jika field idsup dan field matjenis pada tabel data_baru sudah ada dan sama dengan field idsup dan field detmatkode di tabel lain maka update field beratmatmasuk sesuai dengan hasil jumlah detsubtotal1 dan update beratmatkeluar  sesuai dengan hasil jumlah detsubtotal2

avatar kedaikopi
@kedaikopi

2 Kontribusi 0 Poin

Diperbarui 8 bulan yang lalu

3 Jawaban:

<pre>INSERT INTO data_baru (idsup, matjenis, beratmatkeluar, beratmatmasuk) SELECT d.idsup, m.matjenis, SUM(detsubtotal2) as beratmatkeluar, SUM(detsubtotal1) as beratmatmasuk FROM detail_barangmasuk d JOIN detail_materialkeluar k ON d.detfaktur = k.detfaktur AND d.idsup = k.idsup AND d.detmatkode = k.detmatkode JOIN material m ON m.matkode = d.detmatkode GROUP BY d.idsup, m.matjenis ON DUPLICATE KEY UPDATE beratmatkeluar = VALUES(beratmatkeluar), beratmatmasuk = VALUES(beratmatmasuk);</pre><div><br>Pada query di atas, terdapat tiga tabel yang di-join yaitu tabel <strong>detail_barangmasuk</strong>, <strong>detail_materialkeluar</strong>, dan <strong>material</strong>. Tabel <strong>detail_barangmasuk</strong> dan <strong>detail_materialkeluar</strong> di-join menggunakan field <strong>detfaktur</strong>, <strong>idsup</strong>, dan <strong>detmatkode</strong>. Selanjutnya, di-join dengan tabel <strong>material</strong> menggunakan field <strong>detmatkode</strong>.<br><br></div><div>Data yang diambil adalah field <strong>idsup</strong> dan <strong>matjenis</strong> dari tabel <strong>detail_barangmasuk</strong> dan <strong>material</strong>, serta hasil jumlah <strong>detsubtotal1</strong> dan <strong>detsubtotal2</strong> dari tabel <strong>detail_barangmasuk</strong> dan <strong>detail_materialkeluar</strong>. Hasil query akan di-group berdasarkan <strong>idsup</strong> dan <strong>matjenis</strong>.<br><br></div><div>Jika terdapat data yang sudah ada pada tabel <strong>data_baru</strong> dengan <strong>idsup</strong> dan <strong>matjenis</strong> yang sama, maka data tersebut akan di-update dengan data yang baru diambil dari kedua tabel tersebut. Hal ini dilakukan menggunakan syntax <strong>ON DUPLICATE KEY UPDATE</strong> pada akhir query.</div>

avatar yukari06
@yukari06

137 Kontribusi 66 Poin

Dipost 1 tahun yang lalu

<div>ini seperti jawaban yang saya dapat dari chat.openai.com</div>

avatar kedaikopi
@kedaikopi

2 Kontribusi 0 Poin

Dipost 1 tahun yang lalu

Bisa menggunakan join table untuk menggabungkan data dari tabel yang berbeda

avatar Hagiik
@Hagiik

46 Kontribusi 3 Poin

Dipost 8 bulan yang lalu

Login untuk ikut Jawaban