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

Ifnull: Roll Up

Melanjutkan dialog sebelumnya dari skenario awal yaitu tentang keingintahuan Dzaky mengenai jumlah pengeluaran ayah, dan uang yang ayah terima berdasarkan isi tabel yang pernah Dzaky buat.

"Oh iya,  well... JIKA NULL... where is the manual?" 
Ini dia!

IFNULL(expr1,expr2).
JIKA expr1 TIDAK NULL, IFNULL() mengembalikan nilai expr1; sebaliknya mengembalikan expr2.
mysql>SELECT IFNULL(kode,'SELISIH') AS KODE,
             IFNULL(uraian,'TOTAL') AS URAIAN,
             SUM(jumlah) AS JUMLAH
      FROM transaksi
      GROUP BY kode, uraian WITH ROLLUP;

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

"Tapi Ayah, SELISIH TOTAL harusnya adalah pengurangan bukan penjumlahan !"

"Ya, karena data yang Dzaky masukkan semuanya positif, baik untuk kode K maupun M. Mudah saja, pada saat Dzaky menjumlahkan, JIKA KODENYA K maka jumlahnya NEGATIF sebaliknya POSITIF".

Lagi-lagi ayah memberikan penekanan ketika mengatakan  "Jika kodenya K". Tadi Ayah bilang "saat menjumlahkan"... hm... Dzaky coba !

mysql > SELECT IFNULL(kode,'SELISIH') AS KODE,
               IFNULL(uraian,'TOTAL') AS URAIAN,
               SUM(IF(kode='K',-jumlah,jumlah)) AS JUMLAH
        FROM transaksi
        GROUP BY kode, uraian WITH ROLLUP;

KODEURAIANJUMLAH
K
K
K
K
K
K
K
K
M
M
M
SELISIH
Beli rokok
Makan malam
Makan Sate
Makan siang
Rokok
Sarapan Pagi
TOTAL
Honor
Upah
TOTAL
TOTAL
-10000
-32500
-25000
-27500
-10000
-5000
-110000
750000
500000
1250000
1140000

"YES !"
"Ayah bagaimana dengan..."... belum sempat Dzaky menyelesaikan perkataan Dzaky, ayah sudah memotong perkataan Dzaky.

"MAEN GAME YOOK !!!"

"AYOOK ...!!!"


Prev : ROLL ME UP - NULL, ROLL ME UP - INTRO