• Tidak ada hasil yang ditemukan

Menggunakan SUM if Untuk Menjumlahkan Nilai Field_kolom Suatu Tabel Pada MySQL _ Jago Web Dev

N/A
N/A
Protected

Academic year: 2021

Membagikan "Menggunakan SUM if Untuk Menjumlahkan Nilai Field_kolom Suatu Tabel Pada MySQL _ Jago Web Dev"

Copied!
24
0
0

Teks penuh

(1)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 1/24

 About Contact 

Home » MySQL Tutorial » Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL

Menggunakan SUM IF untuk menjumlahkan

nilai field/kolom suatu Tabel pada MySQL

Oleh: agusph | Kategori: MySQL Tutorial | Update: 11-12-2015

Pada kesempatan kali ini dan beberapa contoh dalam artikel berikutnya kita akan membahas berbagai fungsi yang disediakan oleh database MySQL. Untuk itu sebelumnya kita buat beberapa tabel yang diperlukan. Skema tabel dan relasi tabel adalah sebagai berikut:

Diagram ERD pada database penjualan

Artikel ini hanya khusus membahas penjumlahan pada kolom tertentu dalam suatu tabel dengan syarat suatu kondisi terpenuhi. Tabel yang kita perlukan hanya tabel tunai yang dalam hal ini merupakan contoh tabel untuk penjualan tunai. 

Penjelasan field:

id_pelanggan dan id_cabang  merupakan merupakan nomor seri pelanggan. kd_produk merupakan kode jenis produk misal: 111 untuk TV, 112 untuk Kulkas, 113 untuk VCD/DVD player, 115 untuk laptop.

kd_item merupakan deskripsi dari produk misal  0132AV550, dua digit pertama merupakan merk (01 untuk Toshiba, karakter berikutnya (32AV550)  merupakan nomor seri produk.

tgl_byr merupakan tanggal pembayaran dengan format yyyy-mm-dd. jml_byr merupakan jumlah pembayaran.

query SQL yang digunakan untuk membuat tabel berikut contentnya:

Follow

Recent Random Comment Ikuti

Kategori

Code Editor CSS Tutorial jQuery Tutorial Lainnya MySQL Tutorial Optimasi Web PHP Tutorial phpMyAdmin Uncategorized Web Hosting Wordpress XAMPP Tutorial

Artikel Pilihan

Character Set dan Collation Pada MySQL – Yakin Sudah Paham? Membuat 15 Efek Social Media Button Dengan CSS Part I Memahami GET dan POST Pada PHP dan HTTP

Memahami Character Set dan Character Encoding

Memahami Session Pada PHP dan Penggunaannya Tutorial Web Development…

Like

Mengaktifkan Kompresi 1

Dapatkan update artikel terbaru via E-Mail

Nama Lengkap Email Langganan

(2)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 2/24 query SQL yang digunakan untuk membuat tabel berikut contentnya:

query untuk content:

Tabel akan tampak seperti gambar berikut:

Pertama kita akan melakukan penjumlahan semua penjualan berdasarkan tahun, query yang kita gunakan adalah:

Output yang kita peroleh: +---+---+ | jml_2011 | jml_2010 | +---+---+ | 16124000 | 9955000 | +---+---+

Jika kita akan mengelompokkan berdasarkan id pelanggan sehingga dapat diketahui berapa jumlah pembelian yang dilakukan per tahunnya maka query yang kita gunakan:

CREATETABLEIFNOTEXISTS`tunai`( `id_pelanggan`varchar(50)DEFAULTNULL, `id_cabang`varchar(50)DEFAULTNULL, `kd_produk`varchar(50)DEFAULTNULL, `kd_item`varchar(20)DEFAULTNULL, `tgl_byr`varchar(50)DEFAULTNULL, `jml_byr`int(11)DEFAULTNULL,

KEY`id_pelanggan`(`id_pelanggan`,`id_cabang`) )ENGINE=InnoDBDEFAULTCHARSET=latin1;

1 2 3 4 5 6 7 8 9

INSERTINTO`tunai`(`id_pelanggan`,`id_cabang`,`kd_produk`,`kd_item ('020011','05','111','01L17LEDW','20110202',1500000), ('020011','05','112','01G150L','20110310',1250000), ('020011','05','113','02PXS24X','20110410',750000), ('012546','12','112','02IC200L','20100202',500000), ('012546','12','112','01G250L','20100310',3500000), ('012546','12','113','03GC225P','20110410',1500000), ('027845','07','115','01C5-002','20110202',1550000), ('027845','07','115','02ST17I','20100310',2730000), ('027845','07','111','0132AV550','20110410',4949000), ('020011','02','115','01603','20100202',2450000), ('020011','02','111','05PLM24M60','20110310',1725000), ('015558','01','111','05MX1403R','20100410',775000),

('015558','01','115','02MT15I XPERIA NEO','20110410',2900000 1 2 3 4 5 6 7 8 9 10 11 12 13 14

SELECT SUM(IF(tgl_byr LIKE"2011%", jml_byr,0))AS jml_2011, SUM(IF(tgl_byr LIKE"2010%", jml_byr,0))AS jml_2010

FROM tunai 1 2 3 SELECT id_pelanggan, id_cabang,

SUM(IF(tgl_byr LIKE"2011%", jml_byr,0))AS jml_2011, SUM(IF(tgl_byr LIKE"2010%", jml_byr,0))AS jml_2010, SUM(jml_byr)AS TOTAL

FROM tunai 1 2 3 4 5 6 Mengaktifkan Kompresi Gzip Untuk Mempercepat Website 1 Setting HTTP Cache Untuk Mempercepat Load Website 2 Cara Terbaru Menghubungkan MySQL Dengan PHP – MySQLi dan PDO 3

Fitur Penting Notepad++ Yang Perlu Anda Ketahui 4

Plugin Notepad++ Terbaik – List Lengkap 5

Mengubah Port Apache dan MySQL di XAMPP 6

Cara Install XAMPP di Windows – Panduan Lengkap

7

Mencari Titik Tengah Koordinat Dengan Javascript dan PHP 8 Mendesain Blockquote Menarik Dengan CSS 9

Mengganti Warna dan Background Teks Yang Terseleksi 10 SQL SQL SQL SQL

(3)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 3/24 Menghitung Field/Kolom Pada Tabel MySQL Dengan Kon... Cara Terbaru Menghubungkan MySQL Dengan PHP –... Install MySQL Service di Windows

LOAD DATA INFILE: Load File CSV Ukuran Besar ke Da...

Like Share

Hasil yang kita dapatkan:

+---+---+---+---+---+ | id_pelanggan | id_cabang | jml_2011 | jml_2010 | TOTAL | +---+---+---+---+---+ | 012546 | 12 | 1500000 | 4000000 | 5500000 | | 015558 | 01 | 2900000 | 775000 | 3675000 | | 020011 | 02 | 1725000 | 2450000 | 4175000 | | 020011 | 05 | 3500000 | 0 | 3500000 | | 027845 | 07 | 6499000 | 2730000 | 9229000 | +---+---+---+---+---+ jika kita ingin menjumlahkan kolom dengan beberapa kondisi, kita tidak bisa menggunakan if, tetapi menggunakan CASE, yang pembahasannya di artikel berikut ini.

UPDATE

Mas awy dalam feedbacknya ingin membuat grand total dari total yang ada, saya rasa perlu untuk saya tambahkan pada artikel ini sehingga dapat lebih bermanfaat.  Terdapat beberapa cara untuk membuat grand total dari total yang ada, beberapa diantaranya dapat dibaca pada artikel: Menghitung Total dan Subtotal Pada MySQL. Contoh kali ini kita akan menggunakan UNION ALL, sehingga querynya menjadi berikut:

Hasil yang kita dapatkan:

+---+---+---+---+---+ | id_pelanggan | id_cabang | jml_2011 | jml_2010 | TOTAL | +---+---+---+---+---+ | 012546 | 12 | 1500000 | 4000000 | 5500000 | | 015558 | 01 | 2900000 | 775000 | 3675000 | | 020011 | 02 | 1725000 | 2450000 | 4175000 | | 020011 | 05 | 3500000 | 0 | 3500000 | | 027845 | 07 | 6499000 | 2730000 | 9229000 | | Grand Total | | 16124000 | 9955000 | 26079000 | +---+---+---+---+---+

Recomended Post

Bagikan 0 Tw eet FROM tunai

GROUPBY id_pelanggan, id_cabang 6

7

SELECT id_pelanggan, id_cabang,

SUM(IF(tgl_byr LIKE"2011%", jml_byr,0))AS jml_2011, SUM(IF(tgl_byr LIKE"2010%", jml_byr,0))AS jml_2010, SUM(jml_byr)AS TOTAL

FROM tunai

GROUPBY id_pelanggan, id_cabang

UNIONALL

SELECT "Grand Total"as id_pelanggan, ""as id_cabang,

SUM(IF(tgl_byr LIKE"2011%", jml_byr,0))AS jml_2011, SUM(IF(tgl_byr LIKE"2010%", jml_byr,0))AS jml_2010, SUM(jml_byr)AS TOTAL

FROM tunai 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Like 1 Share Share SQL

(4)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 4/24

Share Bagikan 0 Tw eet

67 Feedback dari pembaca Umam

23 November 2012 at 17:48

mantapp ini…….. saya izin cpas ya. trimss. Reply

adilog

24 November 2012 at 06:23

monggo mas… semoga bermanfaat…… Reply

OEI

9 October 2013 at 17:34

mas kalo men – sum hasil dari total untuk tabel ini Reply

adilog

10 October 2013 at 13:23

Maaf, maksudnya apa ya mas? Reply

awy

10 December 2015 at 17:59

om agus, sama, saya juga punya maksud seperti itu, bagaimana caranya hasil dari kolom total, ditotal kembali, seperti membuat grand total pada footernya. pada case diatas hasil grand totalnya jadi 26.079.000. Saya ingin membuat total dari data yang sudah tampil di table html, bukan membuat query dari database. thanks,

Reply

agusph

11 December 2015 at 06:42

Terimakasih mas, feedback yang bagus. Untuk membuat Grand Total sudah saya sertakan pada update artikel diatas.

Jika ingin menambahkan di HTML, mas bisa menggunakan php.

Sebenarnya untuk membuat grand total bisa melalui php bisa juga langsung melalui query, tetapi yang paling baik adalah via query karena menganut prinsip “sekali jadi” dan akan kompatibel jika di gunakan di bahasa pemrograman lain. Reply Abanda Venusman 5 December 2013 at 10:47 1 Share Share

(5)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 5/24 keren mas, mengingatkan saya kembali tentang like ‘%harus%’

Reply hadi

11 June 2014 at 06:54

kalaw mau seperti ini gmna : kode | nama | jumlah kirim 001 | buku | 3 001 | buku | 4 JUMLAH | 7 002 | Pensil| 5 JUMLAH | 5 003 | hp | 2 003 | hp | 1 JUMLAH | 3

*di setiap nama barang yg sma di jumlah kan dan hasilnya berada tepat di bawah nama barang

Reply adilog

11 June 2014 at 13:19

Coba menggunakan rollup, tapi rollup mengharuskan GROUP BY, jadi harus ada yang unik antar kode dan nama. query:

SELECT kode, IFNULL(nama, ‘JUMLAH’) AS nama, sum(jumlah) as jumlah FROM `tes` GROUP BY kode, nama WITH ROLLUP

menghasilkan kode|nama|jumlah 001|buku|3 001|buku 2|4 001|JUMLAH|7

dengan asumsi row ke dua diganti buku 2 Reply

IGst Ngr Adi Perdana 31 August 2014 at 20:02

mas saya maw bertanya

misalkan dalam tabel ada seperti ini Nama barangjumlahtgl

sampo 3 12-06-2014 sampo 4 13-06-2014 sabun 3 13-06-2014

saya ingin menjumlahkan isi dari tabel bedasarkan nama barang hingga jadi kayak gini Nama barangjumlah sampo 7 sabun 3 tolong pencerahannya ,, Reply adilog

(6)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 6/24

1 September 2014 at 01:09

Bisa dicoba menggunakan group mas Misal struktur tabel seperti ini: nama_produk | jml | tgl sampo | 3 | 12-06-2014 sampo | 4 | 13-06-2014 sabun | 3 | 13-06-2014 Query:

SELECT nama_produk AS “Nama Barang”, SUM(jml) AS jumlah FROM `produk`

GROUP by nama_produk Hasil:

Nama Barang | jumlah sabun | 3

sampo | 7

Sedikit saran, sebisa mungkin hindari penggunaan nama secara langsung, lebih baik diganti dengan id misal sabun 1, sampo 2, dan dibuat tabel referensi misal dengan nama tabel nama_produk, dengan struktur:

id_produk | nama_produk 1 | sabun

2 | sampo Reply IGst Ngr Adi Perdana 1 September 2014 at 04:11

terima kasih banyak mas,, sarannya jalan,, iyaa mas,,sudah saya isikan id sebaga pembeda,, terima kasih banyak sarannya mas

Reply leoisnanto

20 September 2014 at 05:18

mas klo seuai tabel punya mas,, klo mau jumlahin per bulan gimana mas?? Terima kasih..

Reply adilog

22 September 2014 at 01:47

Seperti pivot tabel ya mas

tergantung fieldnya mas, bisa pakai IF atau CASE kalau seperti diatas

Jika parameter lebih dari 1

SELECT

SUM(IF(tgl_byr LIKE"201101%", jml_byr,0)) SUM(IF(tgl_byr LIKE"201102%", jml_byr,0)) SUM(IF(tgl_byr LIKE"201103%", jml_byr,0)) SUM(IF(tgl_byr LIKE"201104%", jml_byr,0)) SUM(IF(tgl_byr LIKE"201105%", jml_byr,0))

FROM tunai 1 2 3 4 5 6 7 8 SQL

(7)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 7/24 Reply

Sandy

31 October 2014 at 01:55

Terima kasih banyak mas, tapi masih ada pertanyaan. Kalau ini saya aplikasikan di database oracle muncul error ya ORA-00907: missing right parenthesis

Reply adilog

10 December 2014 at 21:33

oracle syntaxnya agak beda mas, ikuti saja pesan errornya, mudah mudahan bisa fix

Reply casper

10 December 2014 at 07:33

Om mau nanya, saya punya tabel : ———————————————————-| Kode ———————————————————-| Header ———————————————————-| Nama ———————————————————-| Saldo ———————————————————-| ———————————————————-1-10-0 | – | Kas | 1-11-0 | 1-10-0 | Kas A | 1000 1-12-0 | 1-10-0 | Kas B | 200 2-10-0 | – | Kendaraan | 2-11-0 | 2-10-0 | Mobil | 2-11-1 | 2-11-0 | avanza | 50 2-11-2 | 2-11-0 | jazz | 80 2-12-0 | 2-10-0 | Motor | 2-12-1 | 2-12-0 | honda | 30

———————————————————-Bagaimana jika saya update atau insert salah satu kode maka total saldo otomatis ter SUM ke header masing2 kode seperti berikut :

———————————————————-| Kode ———————————————————-| Header ———————————————————-| Nama ———————————————————-| Saldo ———————————————————-| ———————————————————-1-10-0 | – | Kas | 1200 1-11-0 | 1-10-0 | Kas A | 1000 1-12-0 | 1-10-0 | Kas B | 200 2-10-0 | – | Kendaraan | 160 2-11-0 | 2-10-0 | Mobil | 130 2-11-1 | 2-11-0 | avanza | 50 2-11-2 | 2-11-0 | jazz | 80 2-12-0 | 2-10-0 | Motor | 30 2-12-1 | 2-12-0 | honda | 30 ———————————————————-SELECT

SUM(CASEWHEN tgl_byr LIKE"%01%"AND tahun SUM(CASEWHEN tgl_byr LIKE"%02%"AND tahun SUM(CASEWHEN tgl_byr LIKE"%03%"AND tahun SUM(CASEWHEN tgl_byr LIKE"%04%"AND tahun SUM(CASEWHEN tgl_byr LIKE"%05%"AND tahun

FROM tunai 1 2 3 4 5 6 7 8 SQL

(8)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 8/24 Mohon bantuannya Om Reply adilog 10 December 2014 at 21:32

Fungsi terkait untuk menangani permasalahan tersebut biasanya pakai trigger mas, namun sepengetahuan saya, di MySQL kita tidak dapat memanipulasi row pada tabel yang sama, ketika tabel tersebut sedang dimanipulasi baik dengan trigger maupun procedure, contoh ketika kita menginsert atau mengupdate row tertentu, di waktu bersamaan tidak dapat meng insert atau update row yang lain.

Mungkin cara yang bisa dipakai adalah membuat temporary tabel, nilai saldo disimpan di tabel tersebut, kemudian dipindahkan ke tabel asli, namun hal tersebut akan merepotkan jika data yang dimanipulsai jumlahnya besar.

Walaupun kita tidak dapat memanipulasi row yang lain, kita dapat memanipulasi nilai yang akan di tambahkan atau di ubah, misal dengan trigger berikut, kita memanipulasi data saldo yang akan ditambahkan menjadi total saldo di header yang sama:

perintah diatas hanya bisa dilakukan ketika data belum ditambahkan BEFORE UPDATE tidak bisa dilakukan ketika data setelah ditambahkan AFTER UPDATE

sehingga jika kita lakukan perintah

INSERT INTO kendaraan VALUES ('1-13-0', '1-10-0' , 'Kas C', 1200);

maka nilai saldo akan menjadi 2400 bukan 1200 lagi. Semoga dapat membantu.

Salam Reply Anis Kurniawan 15 December 2014 at 08:37

misi om mau tanya om,,

kalau mau menjumlah data id_pelanggan yang melakukan transaksi menurut tgl_bayar bagaimana om?

thanks Reply

adilog

15 December 2014 at 09:11

Mungkin seperti ini mas: DELIMITER $$

CREATETRIGGER update_total_saldo BEFORE INSERT FOR EACH ROW

BEGIN

DECLARE total INT(11);

SELECTSUM(saldo)+ NEW.saldo INTO total FROM

SET NEW.saldo = total;

END $$ DELIMITER ; 1 2 3 4 5 6 7 8 9 10 SQL

(9)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 9/24 hasilnya:

id_pelanggan tgl_byr jml_byr

012546 20100202 500000 012546 20100310 3500000 012546 20110410 1500000 015558 20100410 775000 015558 20110410 2900000 020011 20100202 2450000 020011 20110202 1500000 020011 20110310 1250000 020011 20110410 750000 027845 20100310 2730000 027845 20110202 1550000 027845 20110410 4949000 Reply anwar abdul 21 January 2015 at 03:05

misi om mau tanya nih kalau kaya gini gimana ya? #ID | Project | Client | Point

Agus 01 | Piket | Kelas | 2 02 | Piket | Kelas | 3 Total Reply adilog 22 January 2015 at 04:30

maaf, maksudnya bagaimana ya mas? ada contoh tabel awalnya? Reply

anwar abdul

22 January 2015 at 04:50

https://encrypted-tbn3.gstatic.com/images?

q=tbn:ANd9GcSKz6MhzBggdTw7E297LfX_oY2ttX3CeN-B7ka1OBGUhLsUFGwF bikin kaya gitu mas ,gemiddelda nya dirubah menjadi total dari nilai diatas nay

Reply Harry

2 February 2015 at 01:59

Mas..kalo menghitung pembagian antar field dari 2 table berikut: Tabel 1:

———————————————————— ID | Perusahaan | penghasilan | Pajak | ————————————————————-1 | PT. Anugerah | 20.000.000 | |

2. | CV. Makmur | 20.000.000 | | Keterangan:

– ID (int) (10) (key)

SELECT id_pelanggan, tgl_byr, jml_byr

FROM tunai

GROUPBY id_pelanggan, tgl_byr 1

2 3

(10)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 10/24 – ID (int) (10) (key) – Perusahaan (varchar) (50) – Penghasilan (varchar) (30) – Pajak (Varchar) (30) Tabel 2: ———————————————————— ID | Perusahaan | parameter_pajak | ————————————————————-1 | PT. Anugerah | 200.000 | 2. | CV. Makmur | 200.000 | Keterangan: – ID (int) (10) (key) – Perusahaan (varchar) (50) – Parameter_pajak (varchar) (30) Pertanyaanya:

Misal kita mau menghitung isi kolom “Penghasilan (table-1)” dibagi isi kolom “Parameter_pajak (table-2)” dan hasil baginya otomatis akan terinput ke kolom “Pajak (table-1)”. Serta jika nilai “parameter_pajak (table-2)” dirubah nilai angkanya.. maka total pembagian di “pajak (table-1)” juga akan otomatis berubah. Caranya bagaimana ya mas?? tolong dong mas… makasih sebelumnya.

Reply adilog

3 February 2015 at 00:46

Untuk pertanyaan pertama, coba query ini mas:

UPDATE tabel_1 SET pajak = penghasilan / (SELECT parameter_pajak FROM tabel_2 WHERE id = 1) WHERE id = 1 yang kedua bisa menggunakan trigger dengan syntax:

Jika syntak diatas dijalankan di PHPMyAdmin, mungkin ada pesan error, namun diabaikan saja, biasanya trigger sudah kesimpan. Setelah itu

bisa dicoba dengan mengupdate tabel 2:

UPDATE tabel_2 SET parameter_pajak = 300000 WHERE id = 2; setelah itu coba cek isi tabel_1

Sedikit saran dari saya mas:

1. Untuk nulai angka seperti kolom penghasilan, pajak, dan parameter_pajak, gunakan type data INT, atau BIGINT, karena akan memudahkan memanipulasi data

2. Untuk penaman tabel maupun field tabel gunakan penamaan yang standar, biasanya huruf kecil semua + underscore, agar memudahkan kita ketika menulis kode, saya biasanya menulis syntax MySQL dengan huruf kapital sehingga jelas perbedaan mana syntax, mana tabel/field.

DELIMITER $$

CREATETRIGGER update_pajak AFTERUPDATEON tabel_2 FOR EACH ROWBEGIN

UPDATE tabel_1

SET pajak = tabel_1.penghasilan / NEW.parameter_pajak WHERE tabel_1.id = NEW.id;

END $$ DELIMITER; 1 2 3 4 5 6 7 8 9 10 SQL

(11)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 11/24 mana syntax, mana tabel/field.

Semoga membantu Salam…

Reply Harry

4 February 2015 at 03:52

Trimakasih mas untuk sarannya, dan field nya udah sya ganti.

Trus untuk tipsnya juga sudah sya praktekkan sesuai instruksi, dan triggersnya sih udah masuk mas, tapi kok nilainya gak muncul di table ya mas?? di kolom “pajak(table_1)” tetep kosong tuh mas. Trus saat saya masukin script yg kedua, muncul pesan erros “#1054 – Unknown column ‘id = 2’ in ‘where clause’ “.

Sebagai pertimbangan mas, misalnya table_2 (parameter_pajak) itu saya jadiin satu dengan table_1, jadi saya pake 1 table saja. trus nanti pake sistem pembagian biasa, ama nanti tinggal di select saat nampilin ke browser (kolom “parameter_pajak” ditampilin buat admin, dan kolom “perusahaan & pajak” untuk user). Kira2 dri sisi efektif dan keamanannya lebih bagus dipisah atau disatuin aja mas??

Mohon pencerahannya mas.., terimakasih banyak sebelumnya.

Reply adilog

5 February 2015 at 12:21

Jawaban 1:

Untuk tabelnya coba seperti ini mas:

Jawaban 2:

Untuk field pajak pada tabel_1 tidak perlu di buat karena merupakan attribut komposit (bisa didapatkan dari hasil operasi field lain) dengan penghasilan / parameter pajak,

CREATETABLEIFNOTEXISTS`tabel_1 `id`int(11)NOTNULL,

`perusahaan`varchar(50)NOT

`penghasilan`int(11)NOTNULL `pajak`int(11)NOTNULL )ENGINE=MyISAM DEFAULTCHARSET

INSERTINTO`tabel_1`(`id`,` (1,'PT. Anugerah',20000000, (2,'CV. Makmur',20000000,0)

CREATETABLEIFNOTEXISTS`tabel_2 `id`int(11)NOTNULL,

`perusahaan`varchar(50)NOT

`parameter_pajak`int(11)NOT )ENGINE=MyISAM DEFAULTCHARSET

INSERTINTO`tabel_2`(`id`,` (1,'PT. Anugerah',200000), (2,'CV. Makmur',200000); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SQL

(12)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 12/24 dengan penghasilan / parameter pajak,

namun situasional juga, kalau sangat terpaksa bisa di tambahkan.

Untuk penggabungan tabel, sangat tergantung dari tabel-tabel yang lain, kalau hanya tabelnya itu saja, sebaiknya digabung saja mas, karena tidak ada attribut (kolom) bernilai banyak, jadi fieldnya id,

perusahaan, penghasilan,

parameter_pajak

Jika harus dipisah, sebaiknya entitas perusahaan berdisi sendiri, misal tabel_1 dengan attribute: id_perusahaan, nama_perusahaan sedangkan tabel_2 dengan attribute id_perusahaan, penghasilan, pajak

jangan mengulang nama perusahaan, karena akan mempengaruhi integritas data, misal nama perusahaan di tabel_1 diubah, maka tabel_2 sudah tidak sinkron lagi

penamaan id sebaiknya spesifik, misal id_perusahaan, bukan sekedar id, karena ketika id_perusahaan menjadi foreign key, akan mudah teridentifikasi, disamping itu ketika memudahkan kita dalam melakukan join ketika menulis kode SQL, hal ini akan terasa jika bekerja dengan banyak tabel, puluhan hingga mungkin ratusan tabel nama tabel sebaiknya mencerminkan isi tabel, saya menggunakan tabel_1 dan tabel_2 hanya untuk mempermudah saja

Agar lebih mendalam, bisa membaca buku ini mas, Dasar Perancangan dan Implementasi Database karya Abdul Kadir, atau Pengantar Data Base / Database karya Ir. Fatansyah Semoga dapat membantu…

Salam…. Reply hadypratama4 3 February 2015 at 03:38 mantap Reply Anonim 22 August 2015 at 06:17 Hallo om agus ph, Saya mau tanya

Kalo cara menghitung total part reject berdasarkan tanggal, shift, part Tanggal | shift | barang | reject | jml

2015-08-20 | S1 | abc | rusak | 3 2015-08-20 | S1 | abc | patah | 5 2015-08-20 | S1 | abc | ancur | 7 2015-08-20 | S1 | def | pecah | 2

(13)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 13/24 2015-08-20 | S1 | def | pecah | 2

2015-08-20 | S2 | abc | rusak | 4 2015-08-20 | S2 | def | rusak | 1

Saya mau menampilkan total reject ketika saya memilih pada option combo box:

tanggal ’20 agustus 2015′ di ‘shift 1’ untuk part ‘abc’

Maka tanpa harus submit, akan tampil nilai total di dalam textbox (readonly).

Mohon pencerahannya.

Sebelum dan sesudahnya terimakasih om Reply

agusph

24 August 2015 at 16:59

Misal tabel nya bernama produk, query yang digunakan bisa memakai ini mbak:

nanti ketemu hasilnya 15

untuk memanggil query tersebut ketika combo box di ganti nilainya, bisa menggunakan ajax, javascript. jika pengen lebih mudah bisa pakai library seperti jquery, event nya bisa pakai onChange, ajaxnya bisa menggunakan get

Semoga dapat membantu Reply

belajarhebat

24 September 2015 at 15:29

Wih artikelnya keren. Oh ya gan ane mau tanya klo menjumlahkan (bukan di sum) 2 field mysql dan menjadi field tabel baru (AS) gimana ya??. Maklum masih amatiran ×_×

Reply

agusph

25 September 2015 at 05:44

Terima kasih mas.

Misal kita punya tabel nilai_ujian dengan field nama, nilai1 dan nilai2. Maksudnya ingin menjumlahkan field nilai1 dan nilai2 ya mas? kalau yang dimaksud seperti itu bisa dicoba query berikut:

SELECT nama, nilai1 + nilai2 as jumlah FROM nilai_ujian Reply

Fredy

27 November 2015 at 12:11

Mas, minta bantuannya buat tampilan dibawah ini : 001 KARYA UMUM 49 49

001 FILSAFAT DAN PSIKOLOGI 928 928 001 AGAMA 899 899

001 ILMU-ILMU SOSIAL 186 186

SELECTSUM(jml)as JUMLAH

FROM produk

WHERE tanggal ='2015-08-20'AND shift ='S1'AND 1

2 3

(14)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 14/24 001 ILMU-ILMU SOSIAL 186 186

Kode nya seharusnya berurutan mas seperti : 001, 002, 003, 004 query yang saya pakai seperti ini mas :

$Query0 = mysqli_query($conn, “SELECT SUBSTR(eks_klasifikasi, 2, 3) AS KODE, COUNT(buku_id) AS JUMLAH_JUDUL, COUNT(eks_buku) AS JUMLAH_EKS FROM m_buku JOIN m_eksemplar ON m_buku.buku_id = m_eksemplar.eks_buku WHERE eks_klasifikasi LIKE ‘%0’ AND buku_id IS NOT NULL”)

Fungsi LIKE nya saya ganti untuk nomor urut 002 tapi pas di tampilan tetap 001. Thanks bantuannya Mas

Reply

agusph

28 November 2015 at 05:18

Saya belum ada gambaran data awalnya mas, cuman bisa dicoba untuk menambahkan group by, karena ketika kita menggunakan fungsi agregat seperti COUNT, maka dibelakang layar MySQL akan melakukan group, yang field nya otomatis dipilihkan oleh MySQL, sehingga kadang hasil untuk field non agregat tidak sesuai harapan.

Reply awy

12 December 2015 at 19:55

dear om agus,

terima kasih atas responnya..

maksud saya sih saya membuat grand total dariphp karena untuk menguji hasil querynya.

saya mau buat grand total untuk jurnal umum di akuntansi. jadi saya bisa cek apakah debet dan kreditnya sama. jadi bila ada kesalahan input di detailnya, saya bisa crosscheck.

btw, sekali lagi, terima kasih atas pencerahannya.. sukses ya om agus.. salam,

Reply

agusph

12 December 2015 at 21:58

Oh begitu ya mas,

iya bisa pakai PHP mas, memang tidak bisa semua output dapat kita dapatkan langsung dari query MySQL,

untuk case yang kompleks kadang perlu bantuan PHP. Sukses juga ya mas Awy…

Reply aries

23 January 2016 at 21:32

Mas Agusph

Jika saya ingin membuat tabel PERHITUNGAN program gaji pegawai sederhana misal :

seperti perkalian penjumlahan dan lain lain dan program tsb saya SELIPKAN di program PHPMAKER apakah ada bedanya ? mksdnya apakah coding PHP murni dan PHPMAKER berbeda ? terima kasih

(15)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 15/24 murni dan PHPMAKER berbeda ? terima kasih

Reply

agusph

24 January 2016 at 06:13

PHPMaker menyediakan berbagai fungsi untuk fetching data pada database mas, secara default aplikasi tersebut menggunakan active record untuk pengelolaan databasenya, namun kita juga dapat menjalankan perintah SQL murni seperti menggunakan fungsi ew_LoadRecordset

Reply ali

16 February 2016 at 10:29

om agus numpang tanya kalo mau nampilkan nama |jml

acer 470|1| acer 470|3|

biar bisa tampil kayak gini acer 470|4|

Reply

agusph

16 February 2016 at 18:08

Coba pakai query ini mas: SELECT nama, SUM(jml) as jumlah FROM nama_tabel GROUP BY nama

Reply ali

17 February 2016 at 06:10

makasih om agus … alkhamdulilah berasil Reply

wayan

20 February 2016 at 10:46

om agus saya mau tanya, tapi sebelumnya saya jelaskan dulu ini saya bingung di sistem yang saya buat yaitu sistem koperasi, nah saya bingungnya cara nampilin sisa angsuran yang belum di bayar,contoh:si a meminjam 12 jt dan susah di angsur 1jt per bulan dan sudah bulan ke 6 nah jadinya 12-6 = 6 jt sisa hutang yang harus di angsur saya bingung cara menampilkannya dengan query , mohon bantuannya dan satu lagi untuk menampilkan ansuran ke berapa juga masih bingung trims

Reply

agusph

20 February 2016 at 13:49

Saya perlu tahu struktur tabel nya mas, misal: tabel nasabah

id_nasabah | nilai_kredit 1 | 12000000

(16)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 16/24 tabel_angsuran

id_nasabah | jml_byr | tgl_byr 1 | 1000000 | 2016-01-01 1 | 1000000 | 2016-02-01 1 | 1000000 | 2016-03-01 1 | 1000000 | 2016-04-01 1 | 1000000 | 2016-05-01 1 | 1000000 | 2016-06-01 Bisa dicoba query ini mas

Reply rohman

28 February 2016 at 00:30

Om agus, mau tanya nih Saya punya query spt ini:

SELECT pembelian.kode_barang, SUM(pembelian.jumlah) AS beli, penjualan.kode_barang, SUM(penjualan.jumlah) AS jual. (barang.kode_barang) AS kode_barang, barang.nama_barang FROM (

SELECT * FROM barang JOIN pembelian

ON barang.kode_barang = pembelian.kode_barang ) as pembelian

LEFT JOIN penjualan ON barang.kode_barang = penjualan.kode_barang GROUP BY barang.kode_barang

Yg sy tanyakn

Ketika input penjualan.jumlah misalkan 1 tapi yg tampil kok gk sesuai yg di input ya, tampil nya jadi 2

Klo input 11 jadi 22 Mohon bantuan nya… Terimakasih sebelumnya Reply

agusph

28 February 2016 at 13:15

Mungkin karena hubungan antar tabel nya many to many mas, sehingga ketika di joinkan datanya muncul semua, mungkin tabel penjualan perlu di buat temporary tabel kemudian di GROUP, sama Tabel temporary yang didalam clausa FROM mungkin perlu di group juga, coba dipelajari solusi ini mas:

http://jagowebdev.com/menghitung-fieldkolom-pada-tabel-mysql- dengan-kondisi-tertentu-menggunakan-count-if/#div-comment-281 jika belum bisa, coba di posting contoh datanya ke facebook

SELECT id_nasabah, nilai_kredit - jml_angsuran AS saldo

FROM tabel_nasabah

LEFTJOIN(

SELECT id_nasabah,SUM(jml_byr)as jml_angsuran

FROM tabel_angsuran

GROUPBY id_nasabah )as tbl_angsuran

USING(id_nasabah)

(17)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 17/24 JagoWebDev nanti kita bahas disana, biar runtut..

Reply rohman

28 February 2016 at 14:02

Oke om saya coba dulu Reply

agusph

28 February 2016 at 20:32

Iya mas, semoga sukses… Reply

rohman

1 March 2016 at 20:04

udah solved mas agus terimaksih atas referensi nya kira-kira query nya seperti ini:

SELECT `t`.`kode_barang`, `t`.`nama_barang`, `t`.`satuan`, `t`.`kategori`, SUM(`t`.`belii`) AS `beli`, SUM(`t`.`juall`) AS `jual` FROM

(

SELECT `barang`.`nama_barang`, `barang`.`satuan`, `barang`.`kategori`,

`pembelian`.`kode_barang`, SUM(`pembelian`.`jumlah`) As `belii`, NULL AS `juall` FROM `pembelian`

LEFT JOIN `barang` USING (`kode_barang`) GROUP BY `barang`.`kode_barang`

UNION

SELECT `barang`.`nama_barang`, `barang`.`satuan`, `barang`.`kategori`,

`penjualan`.`kode_barang`, NULL AS `belii`,SUM(`penjualan`.`jumlah`) AS `juall` FROM `penjualan`

LEFT JOIN `barang` USING(`kode_barang`) GROUP BY `barang`.`kode_barang`

) AS `t` GROUP BY `kode_barang` mohon di koreksi jika ada salah maaf telat replay

Reply

agusph

3 March 2016 at 05:33

Sip mas, sudah betul… Reply

Cecep

6 April 2016 at 08:08

Mas Agusph saya punya tabel akun dan jurnal bagaimana querynya untuk menampilkan Neraca?

TABEL AKUN

KODE NAMA_AKUN JENIS GOLONGAN KET SALDO_AWAL 1010001 Kas Aktiva Aktiva Lancar D 10.000.000 1010002 Persediaan Aktiva Aktiva Lancar D 5.000.000 1020001 Mobil Aktiva Aktiva Tetap D 10.000.000

(18)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 18/24 1020001 Mobil Aktiva Aktiva Tetap D 10.000.000 1020002 Tanah Aktiva Aktiva Tetap D 20.000.000 2010001 Utang Bank Pasiva Kewajiban Lancar K 4.000.000 2010002 Utang Supplier Pasiva Kewajiban Lancar K 2.000.000 3010001 Modal Pemilik Modal Modal K 79.000.000 3020001 Rugi Laba Modal Rugi Laba K 14.000.000 4010001 Pendapatan 1 Pendapatan Pendapatan Operasional K 20.000.000 4010002 Pendapatan 2 Pendapatan Pendapatan Operasional K 5.000.000 4020001 Pendapatan Lain Pendapatan Pendapatan Non Operasional K 2.000.000 5010001 Biaya Gajih Biaya Biaya Operasional D 10.000.000 5010002 Biaya Atk Biaya Biaya Operasional D 2.000.000 5020001 Biaya Lainnya Biaya Biaya Non Operasional D 1.000.000

TABEL JURNAL

NO TGL KODE GOLONGAN KET NOMINAL

1 2016/03/01 1010001 Aktiva Lancar D 1.000.000 1 2016/03/01 2010001 Kewajiban Lancar K 1.000.000 2 2016/03/01 3010001 Modal D 2.000.000 2 2016/03/01 1010001 Aktiva Lancar K 2.000.000 3 2016/03/01 1010001 Aktiva Lancar D 5.000.000 3 2016/03/01 4010001 Pendapatan Operasional K 5.000.000 4 2016/03/01 5010001 Biaya Operasional D 2.000.000 4 2016/03/01 1010001 Aktiva Lancar K 2.000.000 TABEL NERACA Aktiva Aktiva Lancar 1010001 Kas D 12.000.000 1010002 Persediaan D 5.000.000

Total Aktiva Lancar 17.000.000

Aktiva Tetap

1020001 Mobil D 39.000.000 1020002 Tanah D 20.000.000

Total Aktiva Tetap 59.000.000

Total Aktiva 76.000.000

Pasiva

Kewajiban Lancar

2010001 Utang Bank K 5.000.000 2010002 Utang Supplier K 2.000.000 Total Kewajiban Lancar 7.000.000

Modal 3010001 Modal Pemilik K 52.000.000 Total Modal 52.000.000 Rugi Laba 3020001 Rugi Laba K 17.000.000 Total Pasiva 76.000.000 Reply agusph 7 April 2016 at 05:34

(19)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 19/24 to ONE mas, maka perlu untuk membuat tabel jurnal menjadi 1

row untuk setiap kode akun, coba query berikut mas:

Kode diatas memberikan gambaran umum untuk langkah selanjutnya

Reply giman

21 April 2016 at 11:40

ijin kopas . bermanfaat sekali Reply

agusph

22 April 2016 at 21:05

Silakan mas, jangan lupa cantumkan sumbernya ya… Reply

fifah

22 April 2016 at 08:38

mas mau nanya kalau saya punya seperti ini querynya gimana ya mas no anggaran bobot %

1 300 ? 2 200 ? 3 500 ?

tot sum(anggaran) sum(bobot)

bobot didapat dari => anggaran/sum(anggaran)*100 mohon pencerahannya mas

Reply

agusph

22 April 2016 at 21:06

Data awalnya seperti apa ya mbak? Reply

fifah

25 April 2016 at 12:23

SELECT kode, nama_akun, ta.ket,

CASE

WHEN ta.jenis ="Aktiva"

THEN saldo_awal + nominal_d - nominal_k WHEN ta.jenis ="Pasiva"

THEN saldo_awal - nominal_d + nominal_k

ELSE0 END AS Saldo FROM tabel_akun ta LEFTJOIN (

SELECT kode, jenis,SUM(IF(ket ="D", nominal FROM(

SELECT kode, jenis, tj.ket,SUM(nominal FROM tabel_jurnal tj

LEFTJOIN tabel_akun USING(kode) WHERE tj.ket ="D"GROUPBY kode

UNIONALL

SELECT kode, jenis, tj.ket,SUM(nominal

(20)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 20/24

25 April 2016 at 12:23

data awal seperti ini mas agus

field tabel kegiatan field tabel anggaran id_kegiatan id_anggaran

kode_kegiatan kode_kegiatan kegiatan anggaran

tahun_anggaran

bagaimana querynya untuk dapat tampilan seperti berikut no anggaran bobot 1 200.000 13,33 2 400.000 26,67 3 500.000 33,33 4 100.000 6,67 5 300.000 20,00 Total 1500.000 100,00

nilai bobot di dapat dari bobot= (anggaran/totalanggaran)*100 atas bantuannya saya ucapkan terima kasih

Reply

agusph

25 April 2016 at 21:11

Untuk single query bisa dicoba query ini mbak:

Namun kelemahannya, karena menggunakan subquery pada select, maka jika row yang diolah banyak maka waktu eksekusi semakin lama, arternatifnya bisa menggunakan variabel:

Hasilnya:

+---+---+---+ | id_anggaran | anggaran | bobot | +---+---+---+ | 1 | 200000 | 13.33 | | 2 | 400000 | 26.67 | | 3 | 500000 | 33.33 | | 4 | 100000 | 6.67 | | 5 | 300000 | 20.00 | | TOTAL | 1500000 | 100% | +---+---+---+ Reply aziscan

SELECT id_anggaran, anggaran,ROUND(anggaran/(SELECT FROM anggaran

UNION

SELECT'TOTAL', SUM(anggaran),'100%'

FROM anggaran

SET@total=(SELECTSUM(anggaran)FROM anggaran);

SELECT id_anggaran, anggaran,ROUND(anggaran/@total*100

FROM anggaran

UNION

SELECT'TOTAL', SUM(anggaran),'100%'

FROM anggaran

SQL

(21)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 21/24 aziscan

26 April 2016 at 10:21

mas Agus, izin bertanya.. Data saya misal seperti ini : TABEL PEMAKAIAN BAHAN

Tanggal Bahan Jumlah Pakai Gudang 01/04/2016 Terigu 10 BELAKANG 02/04/2016 Terigu 5 BELAKANG 03/04/2016 Terigu 5 depan 10/04/2016 Terigu 5 BELAKANG 01/04/2016 Mentega 10 BELAKANG 02/04/2016 Mentega 10 depan 04/04/2016 Mentega 10 BELAKANG 01/04/2016 Telur 10 BELAKANG 02/04/2016 Telur 10 BELAKANG 03/04/2016 Telur 10 depan

TABEL SUPPLY BAHAN

Tanggal Bahan Jumlah Supply Gudang 01/04/2016 Terigu 100 BELAKANG 01/04/2016 Terigu 50 depan 04/04/2016 Terigu 100 BELAKANG 01/04/2016 Telur 100 BELAKANG 03/04/2016 Telur 100 BELAKANG 01/04/2016 Mentega 100 BELAKANG 04/04/2016 Mentega 100 BELAKANG Hasil yang ingin diharapkan adalah :

JIKA kita pilih TANGGAL ANTARA : 01/04/2016 sampai dengan 03/04/2016 dan GUDANG : BELAKANG

data yang ditampilkan adalah :

Bahan Jlh Pemakaian Jumlah Supply Terigu 15 100 Mentega 10 100 Telur 20 200

mohon share ilmunya mas, terima kasih sebelumnya… Reply

agusph

26 April 2016 at 18:46

Untuk menjoinkan tabel, hubungan antar tabel tersebut HARUS one to one relationship mbak, jika belum maka buat temporary tabel dengan subquery.

Sedikit saran: Untuk tanggal sebaiknya pakai format standar database: yyyy-mm-dd, untuk nama gudang dan nama bahan bisa digantikan kode

Dengan asumsi data apa adanya, coba gunakan query ini untuk memperoleh hasil yang diinginkan:

SELECT bahan,SUM(jml_pakai)AS"Jml Pemakaian", jml_supply

FROM pemakaian

LEFTJOIN

(

SELECTSUM(jml_supply)AS jml_supply, bahan

(22)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 22/24 Reply

Daiki

2 May 2016 at 21:21

Kalau source code penjumlahan yg dibahas versi php.nya gimana mas? Aku kurang paham soalnya masih newbie mas

Reply

agusph

3 May 2016 at 18:45

coba pelajari artikel ini mas: Menghitung Total dan Subtotal Pada MySQL

Reply Andri

4 May 2016 at 15:53

Hello Pak Agus, mau nanya , misalnya saya punya Tabel 1 dengan total row 5 dan

table 2 dengan total row 10 serta table 3 dengan total row 25 pertanyaan :

bagaiman supaya tabel 4 ini berisi semua row yang ada di tabel 1 , tabel 2, tabel 3 sehingga jumlah row yang ada di tabel 4 ini menjadi 50 row dan otomatis terus bertambah dan berkurang jika row ditabel 1 , tabel 2 dan tabel 3 ada yang bertambah atau berkurang

Thanks, salam Reply

agusph

4 May 2016 at 18:23

Coba pakai union mas, misal:

SELECT id_tabel1, nama_tabel1, alamat_tabel1 FROM tabel1 UNION SELECT id_tabel2, nama_tabel2, alamat_tabel2 FROM tabel2

UNION SELECT id_tabel3, nama_tabel3, alamat_tabel3 FROM tabel3

Syarat menggunakan union: banyaknya kolom HARUS sama, jika tidak sama bisa menggunakan fixed value

Reply andri

5 May 2016 at 00:16

izin tanya lagi pak Agus1.mau tanya lagi pak agus, apakah dengan cara diatas brarti ada terbentuk data tabel baru ya. ..? bukan hanya view saja kan.?

SELECTSUM(jml_supply)AS jml_supply, bahan

FROM supply

WHERE STR_TO_DATE(tanggal,'%d/%m/%Y')BETWEEN"2016-04-01" GROUPBy bahan

)as supply

USING(bahan)

WHERE STR_TO_DATE(tanggal,'%d/%m/%Y')BETWEEN"2016-04-01"

(23)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 23/24 kan.?

2. bagaimana cara membuat tabel misalnya tabel terdiri dari 4 field dengan judul fieldnya yaitu:

field1 : namabarang field2 : jumlahbarang field3 : hargapersatuan field4 : total

lanjut pertanyaannya : bagaimana supaya tabel ini di field 4 otomatis terisi datanya karena hasil perkalian dari field2 dan field 3?

thks salam Reply

agusph

5 May 2016 at 09:05

Itu temporary tabel mas, maksudnya ya adanya pas ketika query saja bukan real tabel.

Untuk pertanyaan kedua, perkaliannya bisa dilakukan pada sisi aplikasi, hasilnya diinsert ke field total. Namun cara ini memiliki kelemahan yaitu ketika salah satu field diupdate, data filed total menjadi tidak akurat.

Solusinya perkaliannya dijalankan disisi database, gunakan trigger mas, sehingga ketika salah satu field diupdate, otomatis menjalankan query untuk menghitung total dan mengupdate field total

Reply andri

5 May 2016 at 17:29

1. Pak agus,jadi bagaimana supaya bisa otomatis terbentuk data tabel hasil gabungan row semnua? Tdk hanya temporaly tabel, mengingat setiap nanti mau lihat gabungannya harus ketik sql itu lagi kan agak repot? Adakah cara yang otomatis sekali buat saja?

2. Untuk field yang hasil perkalian otomatis keluar, ,. Boleh tolong di bantu kasih contoh sqlnya yang procedure? Sehingga tabel nya menjadi langsung nampak field 1, field2, field 3 dan field 4 nya otomatis terbentuk.. Maklum pak agus.. baru belajar… salam d

Reply

agusph

6 May 2016 at 20:11

1. Itu memang harusnya demikian mas. Jika menginginkan output seperti itu, memang harus pakai UNION, seberapa kalipun, kecuali desain tabelnya diubah, 3 tabel menjadi satu tabel. Jika menambahkan satu tabel untuk merekap 3 tabel tersebut, saya rasa itu bukan desain tabel yang baik, keuali dalam kondisi ekstra ordinary

2. Setahu saya desain tabel yang baik salah satunya tidak ada field yang isinya turunan dari field yang lain, termasuk yang field total tadi, karena field tadi dapat dengan mudah didapat dari fieldd-field lainnya. Kecuali kalau memang kondisi ekstra ordinary. Untuk masalah query yang berulang, memang seharusnya seperti itu tinggal di optimize. Untuk trigger, bisa coba dipelajari ini mas: http://www.sitepoint.com/how-to-create-mysql-triggers/

(24)

5/13/2016 Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev

http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/ 24/24 TERBARU

Mengaktifkan Kompresi Gzip Untuk Mempercepat Website

Setting HTTP Cache Untuk Mempercepat Load Website

Cara Terbaru Menghubungkan MySQL Dengan PHP – MySQLi dan PDO

Character Set dan Collation Pada MySQL – Yakin Sudah Paham?

Fitur Penting Notepad++ Yang Perlu Anda Ketahui

KOMENTAR TERAKHIR

agusph on Menghitung Field/Kolom Pada Tabel MySQL Dengan Kondisi Tertentu Menggunakan COUNT IF

agusph on Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL

Erwin A on Menghitung Field/Kolom Pada Tabel MySQL Dengan Kondisi Tertentu Menggunakan COUNT IF

andri on Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL

agusph on Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL

SOCIAL

Copyright ©2016 www.jagowebdev.com  About Contact Reply

Silakan tinggalkan komentar

Your Comment  Name :  Email :  Website (optional) :  Subm it Facebook

Twitter

Google Plus

Gambar

Diagram ERD pada database penjualan
Tabel akan tampak seperti gambar berikut:
TABEL AKUN
TABEL JURNAL
+2

Referensi

Dokumen terkait