Anda di halaman 1dari 24

5/13/2016

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

Tutorial Web Development

About

Contact

Home MySQL Tutorial Menggunakan SUM IF untuk menjumlahkan nilai field/kolom

Follow

Like

suatu Tabel pada MySQL

Ikuti

Menggunakan SUM IF untuk menjumlahkan


nilai field/kolom suatu Tabel pada MySQL

Dapatkan update artikel


terbaru via E-Mail
Nama Lengkap

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

Email

Pada kesempatan kali ini dan beberapa contoh dalam artikel berikutnya kita akan
Langganan

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:

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?

Diagram ERD pada database penjualan


Artikel ini hanya khusus membahas penjumlahan pada kolom tertentu dalam suatu

Membuat 15 Efek
Social Media Button
Dengan CSS Part I

tabel dengan syarat suatu kondisi terpenuhi. Tabel yang kita perlukan hanya tabel
tunaiyang dalam hal ini merupakan contoh tabel untuk penjualan tunai.

Memahami GET dan


POST Pada PHP dan
HTTP

Penjelasan field:
id_pelanggan dan id_cabang merupakan merupakan nomor seri pelanggan.

Memahami Character
Set dan Character
Encoding

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

Memahami Session
Pada PHP dan
Penggunaannya

merupakan merk (01 untuk Toshiba, karakter berikutnya (32AV550) merupakan


nomor seri produk.
tgl_byr merupakan tanggal pembayaran dengan format yyyy-mm-dd.
jml_byrmerupakan jumlah pembayaran.

query SQL yang digunakan untuk membuat tabel berikut contentnya:

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

Recent
1

Random Comment

Mengaktifkan Kompresi

1/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
Mengaktifkan Kompresi
1

query SQL yang digunakan untuk membuat tabel berikut contentnya:


1

CREATE TABLE IF NOT EXISTS `tunai` (

`id_pelanggan` varchar(50) DEFAULT NULL,

`id_cabang` varchar(50) DEFAULT NULL,

4
5

`kd_produk` varchar(50) DEFAULT NULL,


`kd_item` varchar(20) DEFAULT NULL,

`tgl_byr` varchar(50) DEFAULT NULL,

7
8

`jml_byr` int(11) DEFAULT NULL,


KEY `id_pelanggan` (`id_pelanggan`,`id_cabang`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Gzip Untuk Mempercepat

SQL

Website
2

Untuk Mempercepat
Load Website
3

2
3

Cara Terbaru
Menghubungkan MySQL
Dengan PHP MySQLi
dan PDO

query untuk content:


1

Setting HTTP Cache

4temFitur Penting Notepad++


SQL
INSERT INTO `tunai` (`id_pelanggan`, `id_cabang`, `kd_produk`
, `kd_i
Yang Perlu Anda Ketahui
('020011', '05', '111', '01L17LEDW', '20110202', 1500000),
('020011', '05', '112', '01G150L', '20110310', 1250000),

('020011', '05', '113', '02PXS24X', '20110410', 750000),

5
6

('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),

10
11

('027845', '07', '111', '0132AV550', '20110410', 4949000),


('020011', '02', '115', '01603', '20100202', 2450000),

12

('020011', '02', '111', '05PLM24M60', '20110310', 1725000),

13

('015558', '01', '111', '05MX1403R', '20100410', 775000),

14

('015558', '01', '115', '02MT15I XPERIA NEO', '20110410', 2900000

Plugin Notepad++
Terbaik List Lengkap

Mengubah Port Apache


dan MySQL di XAMPP

Cara Install XAMPP di


Windows Panduan
Lengkap

Mencari Titik Tengah


Koordinat Dengan
Javascript dan PHP

Tabel akan tampak seperti gambar berikut:

Mendesain Blockquote
Menarik Dengan CSS

10

Mengganti Warna dan


Background Teks Yang
Terseleksi

Pertama kita akan melakukan penjumlahan semua penjualan berdasarkan tahun,


query yang kita gunakan adalah:
1
2
3

SQL
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

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:
SQL
1 SELECT id_pelanggan,
2
id_cabang,
3
SUM(IF(tgl_byr LIKE "2011%", jml_byr, 0)) AS jml_2011,
4
SUM(IF(tgl_byr LIKE "2010%", jml_byr, 0)) AS jml_2010,
5
SUM(jml_byr) AS TOTAL
6 FROM tunai
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

2/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
FROM tunai

GROUP BY id_pelanggan, id_cabang

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
Masawydalam 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:
1

SQL

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,

5
6

SUM(jml_byr) AS TOTAL
FROM tunai

GROUP BY id_pelanggan, id_cabang

UNION ALL

SELECT "Grand Total" as id_pelanggan,

10

"" as id_cabang,

11
12

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


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

13
14

SUM(jml_byr) AS TOTAL
FROM tunai

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

Menghitung
Field/Kolom Pada
Tabel MySQL
Dengan Kon...

Like

Cara Terbaru
Install MySQL
Menghubungkan
Service di Windows
MySQL Dengan PHP
...

LOAD DATA INFILE:


Load File CSV
Ukuran Besar ke
Da...

Like

Bagikan
0
Tw eet
Share
Share
Share
1
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

3/24

5/13/2016

Share

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

Bagikan

Tw eet

Share

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

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

4/24

5/13/2016

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

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
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

5/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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
1
2
3
4
5
6
7
8

SELECT
SQL
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

Jika parameter lebih dari 1


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

6/24

5/13/2016

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

SELECT

SQL

SUM (CASE WHEN tgl_byr LIKE "%01%" AND tahun

SUM (CASE WHEN tgl_byr LIKE "%02%" AND tahun

SUM (CASE WHEN tgl_byr LIKE "%03%" AND tahun

SUM (CASE WHEN tgl_byr LIKE "%04%" AND tahun

6
7

SUM (CASE WHEN tgl_byr LIKE "%05%" AND tahun


FROM

tunai

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
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

7/24

5/13/2016

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

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:
1

DELIMITER $$

CREATE TRIGGER update_total_saldo BEFORE INSERT

3
4

FOR EACH ROW


BEGIN

SQL

DECLARE total INT(11);

SELECT SUM(saldo) + NEW.saldo INTO total FROM

SET NEW.saldo = total;

END

$$

1
0
perintah

DELIMITER ;
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:


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

8/24

5/13/2016

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

SELECT id_pelanggan, tgl_byr, jml_byr

FROM tunai

GROUP BY id_pelanggan, tgl_byr

SQL

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)
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

9/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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) WH
yang kedua bisa menggunakan trigger dengan syntax:
1

DELIMITER $$

CREATE TRIGGER update_pajak

AFTER UPDATE ON tabel_2

4
5
6
7
8
9
1
0

SQL

FOR EACH ROW BEGIN


UPDATE tabel_1
SET pajak = tabel_1.penghasilan / NEW.parameter_pajak
WHERE tabel_1.id = NEW.id;
END $$
DELIMITER;

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.
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

10/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

CREATE TABLE IF NOT EXISTS `


tabel_1
SQL
`id` int(11) NOT NULL,
`perusahaan` varchar(50) NOT
`penghasilan` int(11) NOT NULL
`pajak` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET
INSERT INTO `tabel_1` (`id`, `
(1, 'PT. Anugerah', 20000000,
(2, 'CV. Makmur', 20000000, 0)
CREATE TABLE IF NOT EXISTS `tabel_2
`id` int(11) NOT NULL,
`perusahaan` varchar(50) NOT
`parameter_pajak` int(11) NOT
) ENGINE=MyISAM DEFAULT CHARSET
INSERT INTO `tabel_2` (`id`, `
(1, 'PT. Anugerah', 200000),
(2, 'CV. Makmur', 200000);

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,
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

11/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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

perusahaan,

id,

penghasilan,

parameter_pajak
Jika

harus

dipisah,

sebaiknya

entitas

perusahaan berdisi sendiri, misal tabel_1


dengan

attribute:

nama_perusahaan
dengan

id_perusahaan,
sedangkan

attribute

tabel_2

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
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

12/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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:
1

SELECT SUM(jml) as JUMLAH

FROM produk

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

SQL

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
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

13/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

14/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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
tabel_angsuran
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

15/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
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
SELECT id_nasabah, nilai_kredit - jml_angsuran AS
saldo
SQL
FROM tabel_nasabah
LEFT JOIN (
SELECT id_nasabah, SUM(jml_byr) as jml_angsuran
FROM tabel_angsuran
GROUP BY id_nasabah
) as tbl_angsuran
USING (id_nasabah)
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-mysqldengan-kondisi-tertentu-menggunakan-count-if/#div-comment281 jika belum bisa, coba di posting contoh datanya ke facebook
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

16/24

5/13/2016

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

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

1010001 Kas

Aktiva

Aktiva Lancar

10.000.000

1010002 Persediaan

Aktiva

Aktiva Lancar

5.000.000

1020001 Mobil

Aktiva

Aktiva Tetap

10.000.000

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

KET

SALDO_AWAL

17/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
1020001 Mobil
Aktiva
Aktiva Tetap
D

10.000.000

1020002 Tanah

Aktiva

Aktiva Tetap

20.000.000

2010001 Utang Bank

Pasiva

Kewajiban Lancar

4.000.000

2010002 Utang Supplier Pasiva

Kewajiban Lancar

2.000.000

3010001 Modal Pemilik

Modal

Modal

79.000.000

3020001 Rugi Laba

Modal

Rugi Laba

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

10.000.000

5010002 Biaya Atk

Biaya

Biaya Operasional

2.000.000

5020001 Biaya Lainnya

Biaya

Biaya Non Operasional

1.000.000

TABEL JURNAL
NO

TGL

KODE

GOLONGAN

KET

NOMINAL

2016/03/01

1010001 Aktiva Lancar

1.000.000

2016/03/01

2010001 Kewajiban Lancar

1.000.000

2016/03/01

3010001 Modal

2.000.000

2016/03/01

1010001 Aktiva Lancar

2.000.000

2016/03/01

1010001 Aktiva Lancar

5.000.000

2016/03/01

4010001 Pendapatan Operasional

5.000.000

2016/03/01

5010001 Biaya Operasional

2.000.000

2016/03/01

1010001 Aktiva Lancar

2.000.000

TABEL NERACA
Aktiva
Aktiva Lancar
1010001 Kas

12.000.000

1010002 Persediaan

5.000.000

Total Aktiva Lancar

17.000.000

Aktiva Tetap
1020001 Mobil

39.000.000

1020002 Tanah

20.000.000

Total Aktiva Tetap

59.000.000

Total Aktiva

76.000.000

Pasiva
Kewajiban Lancar
2010001 Utang Bank

5.000.000

2010002 Utang Supplier

2.000.000

Total Kewajiban Lancar

7.000.000

Modal
3010001 Modal Pemilik

Total Modal

52.000.000
52.000.000

Rugi Laba
3020001 Rugi Laba
Total Pasiva

17.000.000
76.000.000

Reply
agusph
7 April 2016 at 05:34

Untuk dapat menghubungkan kedua tabel reation nya harus ONE


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

18/24

5/13/2016

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

to ONE mas, maka perlu untuk membuat tabel jurnal menjadi 1


row untuk setiap kode akun, coba query berikut mas:
SELECT kode, nama_akun, ta.ket,

PHP

CASE
WHEN ta.jenis = "Aktiva"
THEN saldo_awal + nominal_d - nominal_k
WHEN ta.jenis = "Pasiva"
THEN saldo_awal - nominal_d + nominal_k
ELSE 0
END
AS Saldo
FROM tabel_akun ta
LEFT JOIN
(
SELECT kode, jenis, SUM(IF (ket = "D", nominal
FROM(
SELECT kode, jenis, tj.ket, SUM(nominal
FROM tabel_jurnal tj
LEFT JOIN tabel_akun USING(kode)
WHERE tj.ket = "D" GROUP BY kode
UNION ALL
SELECT kode, jenis, tj.ket, SUM(nominal
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

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

19/24

5/13/2016

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

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

200.000

13,33

400.000

26,67

500.000

33,33

100.000

6,67

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:


SELECT id_anggaran, anggaran, ROUND(anggaran/(SEL
ECT
SQL
FROM anggaran
UNION
SELECT 'TOTAL', SUM(anggaran), '100%'
FROM anggaran
Namun kelemahannya, karena menggunakan subquery pada
select, maka jika row yang diolah banyak maka waktu eksekusi
semakin lama, arternatifnya bisa menggunakan variabel:
SET @total = (SELECT SUM(anggaran) FROM anggaran)
;
SQL
SELECT id_anggaran, anggaran, ROUND(anggaran/@total*100
FROM anggaran
UNION
SELECT 'TOTAL', SUM(anggaran), '100%'
FROM anggaran
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
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

20/24

5/13/2016

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

aziscan

26 April 2016 at 10:21

mas Agus, izin bertanya..


Data saya misal seperti ini :
TABEL PEMAKAIAN BAHAN
Tanggal

Bahan

01/04/2016

Terigu

Jumlah Pakai
10

Gudang
BELAKANG

02/04/2016

Terigu

BELAKANG

03/04/2016

Terigu

depan

10/04/2016

Terigu

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

01/04/2016

Terigu

50

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

BELAKANG
depan

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", SQL
jml_supply
FROM pemakaian
LEFT JOIN
(
SELECT SUM(jml_supply) AS jml_supply, bahan
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

21/24

5/13/2016

Menggunakan SUM IF untuk menjumlahkan nilai field/kolom suatu Tabel pada MySQL | Jago Web Dev
SELECT SUM(jml_supply) AS jml_supply, bahan

FROM supply
WHERE STR_TO_DATE(tanggal, '%d/%m/%Y') BETWEEN "2016-04-01"
GROUP By bahan
) as supply
USING(bahan)
WHERE STR_TO_DATE(tanggal, '%d/%m/%Y') BETWEEN "2016-04-01"
GROUP BY bahan
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.?
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

22/24

5/13/2016

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

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 fielddfield 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/
Reply
http://jagowebdev.com/menggunakan-sum-if-untuk-menjumlahkan-nilai-fieldkolom-suatu-tabel-pada-mysql/

23/24

5/13/2016

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

Silakan tinggalkan komentar


Your Comment

Name :
Email :
Website (optional) :
Subm it

TERBARU

KOMENTAR TERAKHIR

SOCIAL

Mengaktifkan Kompresi Gzip Untuk


Mempercepat Website

agusph on Menghitung Field/Kolom Pada Tabel


MySQL Dengan Kondisi Tertentu Menggunakan
COUNT IF

Facebook

Twitter

Google Plus

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

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

Copyright 2016 www.jagowebdev.com

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

About

Contact

24/24