RSS
When someone shares something of value with you and you benefit from it, you have a moral obligation to share it with others...

Null: Roll Up

Adegan berikutnya dari skenario sebelumnya adalah untuk mengetahui berapa jumlah pengeluaran ayah, demikian juga uang yang ayah terima berdasarkan isi tabel yang pernah Dzaky buat. Begini kelanjutannya:


Dzaky ingin melihat berapa nilai dari kelompok masing-masing transaksi yang sudah dilakukan. Dzaky ingin tahu berapa ayah keluar uang dan berapa ayah dapat uang. Lalu Dzaky ketik query untuk menghasilkan pengelompokan nilai dari setiap transaksi:

mysql > SELECT kode,uraian, SUM(jumlah) AS jumlah
        FROM  transaksi
        GROUP BY kode, uraian

kodeuraianjumlah
K
K
K
K
K
K
K
K
Beli rokok
Makan malam
Makan Sate
Makan siang
Rokok
Sarapan Pagi
Honor
Upah
10000
32500
25000
27500
10000
5000
750000
500000

Ayah lihat kan, "Dzaky tidak bisa melihat langsung berapa jumlah pengeluaran ayah, demikian juga uang yang ayah terima".

"Gunakan GROUP BY Modifiers. Gunakan WITH ROLLUP", kata Ayah.

"WITH ROLLUP?"
Dzaky mau bertanya lagi, tetapi ingat kata-kata ayah, "You MUST show that you have attempted to answer your question in order to receive help". Setelah membaca manual tentang ROLL UP, Dzaky ketikkan querynya seperti ini:

mysql > SELECT kode, uraian, SUM(jumlah) AS jumlah
        FROM transaksi
        GROUP BY kode, uraian WITH ROLLUP;

kodeuraianjumlah
K
K
K
K
K
K
K
M
M
M
NULL
Beli rokok
Makan malam
Makan Sate
Makan siang
Rokok
Sarapan Pagi
NULL
Honor
Upah
NULL
NULL
10000
32500
25000
27500
10000
5000
110000
750000
500000
1250000
1360000

"Ayah, koq ada baris yang berisikan NULL ?"

"Yup, klausa GROUP BY ... WITH ROLLUP akan menambahkan baris tambahan pada output yang merupakan ringkasan dari tingkat yang lebih tinggi (atau super-agregat). Berdasarkan query yang Dzaky buat, maka struktur ringkasannya seperti berikut :"

kodeuraianjumlah
kodejumlah.
jumlah ...

YES !.. tapi, Ayah, Dzaky ingin bukan NULL, tetapi sesuatu yang berarti, misalnya "TOTAL"

"WITH ROLLUP akan menambahkan baris NULL pada akhir proses query, karena itu Dzaky bisa periksa JIKA NULL jangan tampilkan NULL tetapi ganti dengan TOTAL seperti yang Dzaky mau", kata Ayah.

Ayah memberikan penekanan pada kata JIKA NULL, hm... ayah memang tidak pernah memberikan ikan, tetapi selalu memberikan kail dan umpan, memberikan motivasi dan inspirasi untuk selalu mencoba terlebih dahulu.

"OK... well... JIKA NULL... where is the manual?"

Next : ROLL ME UP - IFNULL
Prev : ROLL ME UP - INTRO