1.Physichal Data Model Di bawah ini merupakan screenshot dari physical data model yang saya buat dari sebuah toko obat. Berikut screenshootnya :
2.Query Di bawah ini merupakan query dan screen-shot hasil untuk melakukan beberapa fungsi seperti yang sudah ditentukan sbb: 2.1. Menampilkan 10 Item terlaris Query :
SELECT tb_obat.`nama_obat` AS 'obat', COUNT(tb_rincian_penjualan.`id_obat`) AS 'Banyak Sewa' FROM tb_obat INNER JOIN tb_rincian_penjualan ON tb_obat.`id_obat`=tb_rincian_penjualan.`id_obat` GROUP BY nama_obat ORDER BY COUNT(tb_rincian_penjualan.`id_obat`) DESC limit 0,10
Dan di bawah ini merupakan screenshot dari querry dan result dari soal nomor 1.
Screenshot :
2.2. Menampilkan 10 Item Tidak Terlaris Di bawah ini merupakan querry dan screenshot dari fungsi menampilkan 10 item tidak terlaris,dimana pada querry ini saya menggunakan left join sebagai parameter untuk menggabungkan kedua table yang di select. Query :
SELECT tb_obat.`nama_obat` AS 'obat', COUNT(tb_rincian_penjualan.`id_obat`) AS 'Banyak terjual' FROM tb_obat LEFT JOIN tb_rincian_penjualan ON tb_obat.`id_obat`=tb_rincian_penjualan.`id_obat` GROUP BY nama_obat ORDER BY COUNT(tb_rincian_penjualan.`id_obat`) ASC
2.3. Menampilkan Transaksi Mingguan Customer Dibawah ini merupakan query yang menampilkan transaksi pembelian yang dilakukan oleh customer perminggu, di bawah ini merupakan contoh sebuah laporan mingguan suatu perusahaan, dan pada kasus ini saya menggunakan tanggal 1-7 Januari 2011 sebagai contoh laporan mingguan Query:
SELECT MONTH(tgl_transaksi) AS 'MINGGU', COUNT(tgl_transaksi) AS 'BANYAK TRANSAKSI', SUM(tb_rincian_penjualan.harga_satuan*tb_penjualan.total) AS 'TOTAL TRANSAKSI' FROM tb_penjualan INNER JOIN tb_rincian_penjualan ON tb_penjualan.id_penjualan=tb_rincian_penjualan.id_penjualan WHERE tgl_transaksi BETWEEN '2011-01-01' AND '2011-01-07' GROUP BY MONTH(tgl_transaksi) ORDER BY MONTH(tgl_transaksi) ASC
Screenshot:
2.4.Menampilkan Transaksi Bulanan Berikut ini merupakan Query dan Screenshot untuk menampilkan laporan transaksi pembelian obat selama 1 bulan, serta total keseluruhan pada 1 bulan tersebut.Pada kasus ini saya menggunakan bulan febuari
Query : SELECT MONTH(tgl_transaksi) AS 'BULAN', COUNT(tgl_transaksi) AS 'BANYAK TRANSAKSI', SUM(tb_rincian_penjualan.harga_satuan*tb_penjualan.total) AS 'TOTAL TRANSAKSI' FROM tb_penjualan INNER JOIN tb_rincian_penjualan ON tb_penjualan.id_penjualan=tb_rincian_penjualan.id_penjualan WHERE tgl_transaksi BETWEEN '2011-01-01' AND '2011-02-01' GROUP BY MONTH(tgl_transaksi) ORDER BY MONTH(tgl_transaksi) ASC Screenshot :
2.5 Menampilkan Transaksi Customer per-tigabulan Berikut ini merupakan query untuk menampilkan transaksi selama tiga bulan dan yang saya gunakan adalah bulan Januari,Februari,dan Maret, dimana akan ditampilkan banyak transaksi dan total transaksi pada masing-masing bulan Query :
SELECT MONTH(tgl_transaksi) AS 'BULAN', COUNT(tgl_transaksi) AS 'BANYAK TRANSAKSI', SUM(tb_rincian_penjualan.harga_satuan*tb_penjualan.total) AS 'TOTAL TRANSAKSI' FROM tb_penjualan INNER JOIN tb_rincian_penjualan ON tb_penjualan.id_penjualan=tb_rincian_penjualan.id_penjualan WHERE tgl_transaksi BETWEEN '2011-01-01' AND '2011-04-01' GROUP BY MONTH(tgl_transaksi) ORDER BY MONTH(tgl_transaksi) ASC
Screenshot :
2.6 Menampilkan Transaksi Tahunan Customer Berikut ini merupakan query untuk menampilkan transaksi tahunan dari toko obat yang mencakup banyak transaksi dan total transaksi sepanjang tahun 2011 mulai dari bulan januari sampai dengan Desember. Query :
SELECT MONTH(tgl_transaksi) AS 'BULAN', COUNT(tgl_transaksi) AS 'BANYAK TRANSAKSI',
SUM(tb_rincian_penjualan.harga_satuan*tb_penjualan.total) AS 'TOTAL TRANSAKSI' FROM tb_penjualan INNER JOIN tb_rincian_penjualan ON tb_penjualan.id_penjualan=tb_rincian_penjualan.id_penjualan WHERE tgl_transaksi BETWEEN '2011-01-01' AND '2011-12-31' GROUP BY MONTH(tgl_transaksi) ORDER BY MONTH(tgl_transaksi) ASC
Screenshot :
2.7 Frekuensi Transaksi Customer Mingguan Berikut merupakan query untuk menampilkan frekuensi transaksi yang dilakukan oleh customer dalam rentang satu minggu. Pada kasus ini saya menggunakan tanggal 1-7 januari 2011. Query :
SELECT tb_customer.nama AS 'NAMA CUSTOMER', COUNT(tb_penjualan.tgl_transaksi) AS 'BANYAK TRANSAKSI' FROM tb_customer INNER JOIN tb_penjualan ON tb_customer.id_customer=tb_penjualan.id_customer WHERE tgl_transaksi BETWEEN '2011-01-01' AND '2011-03-01' GROUP BY (tb_penjualan.id_customer) ORDER BY COUNT(tb_customer.id_customer) DESC
Screenshot :
2.8 Frekuensi Transaksi Customer Bulanan Berikut ini merupakan query untuk menampilkan frekuensi transaksi yang dilakukan customer dalam rentang waktu satu bulan. Pada kasus ini saya menggunakan contoh bulan Januari. Query:
SELECT tb_customer.nama AS 'NAMA CUSTOMER', COUNT(tb_penjualan.tgl_transaksi) AS 'BANYAK TRANSAKSI'
FROM tb_customer INNER JOIN tb_penjualan ON tb_customer.id_customer=tb_penjualan.id_customer WHERE tgl_transaksi BETWEEN '2011-01-01' AND '2011-03-01' GROUP BY (tb_penjualan.id_customer) ORDER BY COUNT(tb_customer.id_customer) DESC
Screenshot :
2.9 Customer dengan Transaksi Tertinggi Berikut ini merupakan query untuk menampilakan klien dengan transaksi paling tinggi selama tahun 2011.Dalam artian customer tersebut paling sering melakukan transaksi selama setahun. Query :
SELECT tb_customer.nama AS 'NAMA CUSTOMER', SUM(tb_rincian_penjualan.harga_satuan*tb_penjualan.total) AS 'TOTAL TRANSAKSI' FROM tb_customer INNER JOIN tb_penjualan ON tb_customer.id_customer=tb_penjualan.id_customer INNER JOIN tb_rincian_penjualan ON tb_penjualan.id_penjualan=tb_rincian_penjualan.id_penjualan WHERE tgl_transaksi BETWEEN '2011-01-01' AND '2011-012-31' GROUP BY (tb_customer.id_customer) ORDER BY SUM(tb_rincian_penjualan.harga_satuan*tb_penjualan.total) DESC
Screenshot:
Gambar 10. Screenshot result query menampilkan customer dengan transaksi tertinggi selama setahun
Berikut ini merupakan query untuk menampilkan pertambahan klien perbuan,maksudnya penambahan jumlah customer perbulan. Query :
SELECT MONTH(tgl_daftar) AS 'Bulan', YEAR(tgl_daftar) AS 'Tahun', COUNT(id_customer) AS 'Pertambahan Member' FROM tb_customer GROUP BY MONTH(tgl_daftar) ASC Screenshot:
2.11 Contoh Penggunaan Statement Select dalam Select Berikut ini merupakan contoh penggunaan statement select dalam select.disini saya menerapkan pada menampilkan nama obat serta kategorinya pada table obat dengan kategori action pada tabel kategori Query :
SELECT nama_obat AS 'obat', tahun_produksi AS 'Tahun Pembuatan' FROM tb_obat WHERE id_kategori IN (SELECT id_kategori FROM tb_kategori WHERE keterangan ='antibiotik')
Sceenshot :