Skip to content

Instantly share code, notes, and snippets.

@hidayat365
Last active December 20, 2015 12:09
Show Gist options
  • Save hidayat365/6128431 to your computer and use it in GitHub Desktop.
Save hidayat365/6128431 to your computer and use it in GitHub Desktop.
Contoh SQL untuk perhitungan menggunakan CASE clause
mysql> ----------------------------
mysql> -- set database
mysql> ----------------------------
mysql> use test;
Database changed
mysql> ----------------------------
mysql> -- create table
mysql> ----------------------------
mysql> create table penggunaan (
-> kegiatan varchar(20),
-> senin varchar(10),
-> selasa varchar(10),
-> rabu varchar(10),
-> kamis varchar(10),
-> jumat varchar(10),
-> sabtu varchar(10)
-> ) ;
Query OK, 0 rows affected (0.09 sec)
mysql> ----------------------------
mysql> -- insert data
mysql> ----------------------------
mysql> insert into penggunaan values
-> ('olahraga','ya','tidak','ya','tidak','ya','tidak','tidak'),
-> ('diskusi','tidak','ya','tidak','tidak','tidak','ya','tidak'),
-> ('rapat','ya','tidak','tidak','tidak','tidak','tidak','tidak'),
-> ('ulangan','tidak','ya','ya','ya','tidak','tidak','tidak') ;
Query OK, 4 rows affected (0.04 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> ----------------------------
mysql> -- lihat isi table
mysql> ----------------------------
mysql> select * from penggunaan;
+----------+-------+--------+-------+-------+-------+-------+--------+
| kegiatan | senin | selasa | rabu | kamis | jumat | sabtu | minggu |
+----------+-------+--------+-------+-------+-------+-------+--------+
| olahraga | ya | tidak | ya | tidak | ya | tidak | tidak |
| diskusi | tidak | ya | tidak | tidak | tidak | ya | tidak |
| rapat | ya | tidak | tidak | tidak | tidak | tidak | tidak |
| ulangan | tidak | ya | ya | ya | tidak | tidak | tidak |
+----------+-------+--------+-------+-------+-------+-------+--------+
4 rows in set (0.00 sec)
mysql> ----------------------------
mysql> -- buat perhitungannya
mysql> ----------------------------
mysql> select penggunaan.*
-> , case when senin='ya' then 1 else 0 end
-> + case when selasa='ya' then 1 else 0 end
-> + case when rabu='ya' then 1 else 0 end
-> + case when kamis='ya' then 1 else 0 end
-> + case when jumat='ya' then 1 else 0 end
-> + case when sabtu='ya' then 1 else 0 end
-> + case when minggu='ya' then 1 else 0 end as digunakan
-> , case when senin='tidak' then 1 else 0 end
-> + case when selasa='tidak' then 1 else 0 end
-> + case when rabu='tidak' then 1 else 0 end
-> + case when kamis='tidak' then 1 else 0 end
-> + case when jumat='tidak' then 1 else 0 end
-> + case when sabtu='tidak' then 1 else 0 end
-> + case when minggu='tidak' then 1 else 0 end as tidak_digunakan
-> from penggunaan ;
+----------+-------+--------+-------+-------+-------+-------+--------+-----------+-----------------+
| kegiatan | senin | selasa | rabu | kamis | jumat | sabtu | minggu | digunakan | tidak_digunakan |
+----------+-------+--------+-------+-------+-------+-------+--------+-----------+-----------------+
| olahraga | ya | tidak | ya | tidak | ya | tidak | tidak | 3 | 4 |
| diskusi | tidak | ya | tidak | tidak | tidak | ya | tidak | 2 | 5 |
| rapat | ya | tidak | tidak | tidak | tidak | tidak | tidak | 1 | 6 |
| ulangan | tidak | ya | ya | ya | tidak | tidak | tidak | 3 | 4 |
+----------+-------+--------+-------+-------+-------+-------+--------+-----------+-----------------+
4 rows in set (0.00 sec)
mysql> ----------------------------
mysql> -- YAY!!!! data matang,
mysql> -- di php cukup select dan tampilkan saja
mysql> ----------------------------
mysql>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment