Menggunakan Perintah SQL dengan kondisi SUM CASE dan WHEN dai MySQL

Hallo Pembaca,
Kemarin saya pernah mengalami suatu permasalahan untuk menampilkan suatu data, dimana saya harus menjumlahkan suatu data record berdasarkan kolom tertentu, namun pada akhirnya masalah ini bisa terselesaikan dengan bantuan salah satu member di group pemrograman. Untuk contoh kasusnya ada bisa lihat gambar dibawah ini : 
Anda bisa perhatikan bagaimana data bisa tampil sesuai yang saya harapkan. yaitu menampilkan jumlah total triwulan berdasarkan komponen. Ada beberapa kawan saya yang menyarankan menggunakan pivot tabel dalam sql, namun saya kesulitan. Sudah sering saya coba sampai dua hari lebih belum juga ketemu. Dan pada akhirnya ada beberapa kawan yang mengusulkan menggunakan fungsi SUM CASE dan WHEN, saya baru denger kalau sql bisa juga menggunakan kondisi tersebut. Ketika saya coba Alhamdulillah berhasil, saya mencoba kasus ini saya dokumentasikan di blog saya, barang kali ada teman yang lain mengalami kasus seperti saya, dan juga untuk saya kedepannya jika menemukan kasus yang hampir sama. Oke langsung saja kita mulai dari pertama dengan membuat database dulu.
1. Perintah membuat database
CREATE DATABASE `dbtw`;
CREATE TABLE `dbtw`.`tblpengeluaran` (
`tanggal` DATE NOT NULL ,
`triwulan` VARCHAR( 35) NOT NULL ,
`komponen` VARCHAR( 35) NOT NULL ,
`uraian` VARCHAR( 200) NOT NULL ,
`harga` INTEGER( 11) NOT NULL ,
`qty` INTEGER( 11) NOT NULL ,   
`total` INTEGER( 11) NOT NULL
) ENGINE = MYISAM ;

2. Buat perintah sql untuk input data record
INSERT INTO tblpengeluaran( tanggal, triwulan, komponen, uraian, harga, qty, total)
  VALUES (
  '2016-07-22', 'Triwulan I', 'R-20160805-002','Pembelian ATK dan perlengkapan Penerimaan Siswa Baru',1000,5,5000
  ), (
  '2016-08-17', 'Triwulan I', 'R-20160805-002','Pembelian ATK dan perlengkapan Penerimaan Siswa Baru',1200,2,2400
  ), (
  '2016-07-22', 'Triwulan II', 'R-20160805-007','Kebersihan dan perbaikan taman sekolah',1500,5,7500
  ), (
  '2016-08-18', 'Triwulan II', 'R-20160805-007','Kebersihan dan perbaikan taman sekolah',2000,2,4000
  ), (
  '2016-08-11', 'Triwulan III', 'R-20160805-010','Membantu siswa miskin',1000,7,7000
  );


3. Sekarang kita masukkan perintah sql untuk menampilkan data sesuai kasus atau judul diatas
SELECT tblpengeluaran,
SUM(CASE triwulan WHEN 'Triwulan I' THEN total ELSE 0 END) 'Triwulan I',
SUM(CASE triwulan WHEN 'Triwulan II' THEN total ELSE 0 END) 'Triwulan II',
SUM(CASE triwulan WHEN 'Triwulan III' THEN total ELSE 0 END) 'Triwulan III',
SUM(CASE triwulan WHEN 'Triwulan IV' THEN total ELSE 0 END) 'Triwulan IV'
FROM test
GROUP BY komponen

Dan lihat hasilnya, apabila benar dan berhasil maka tampilannya akan sesuai dengan kasus saya, ternyat banyak sekali perintah sql dari mysql yang belum banyak saya ketahui. Saya rasa cukup sekian dari artikel saya ini.

Semoga bermanfaat, terimakasih

0 Response to "Menggunakan Perintah SQL dengan kondisi SUM CASE dan WHEN dai MySQL"

Post a Comment