desainer website di surabaya

preloader
  • jasa web design surabaya
  • total dan total sebelumnya
  • mysql query

Mendapatkan total dan total sebelumnya

jasa web design surabaya - total dan total sebelumnya - mysql query

tutorial mysql untuk mendapatkan nilai total dan total sebelumnya dari mysql query



Mendapatkan total dan total sebelumnya

Sebagai penyedia Jasa Web Design Surabaya, kami terkadang menemukan permintaan customer untuk menampilkan total penjualan hari ini dan tanggal sebelumnya untuk menghitung prosentase kenaikan atau penurunannya.

Nah umumnya kita mencari cara mudah yaitu melakukan dua kali query di database MySQL untuk mendapatkan data yang diminta. Memang tidak ada masalah, tetapi kurang efektif.
Secara umum, kita akan menggunakan query seperti di bawah ini:

<?php
$result=doQuery("select t1.total,t1.tanggal from total_realisasi t1
where LEFT(t1.tanggal,7)=? order by t1.tanggal DESC", Array('2019-07'));

foreach(doArray($result) as $row)
	{
		$result2=doQuery("SELECT t2.total FROM total_realisasi t2 WHERE t2.tanggal < ? order by t2.tanggal DESC limit 1", Array($row['tanggal']));
	}
?>

doQuery dan doArray adalah sql query sesuai dengan class mysql yang kita gunakan.

Sebenarnya, hasil yang sama bisa dilakukan cukup dengan satu kali query, dan tentunya akan lebih efektif.
Caranya adalah sebagai berikut:

<?php
$result=doQuery("select 
t1.total,t1.tanggal,
IFNULL((SELECT t2.total FROM total_realisasi t2 WHERE t2.tanggal < t1.tanggal order by t2.tanggal DESC limit 1), 0) as prevjml
from total_realisasi t1
where LEFT(t1.tanggal,7)=? order by t1.tanggal DESC", Array('2019-07'));
?>

IFNULL((SELECT t2.total FROM total_realisasi t2 WHERE t2.tanggal < t1.tanggal order by t2.tanggal DESC limit 1), 0) as prevjml artinya jika tanggal sebelumnya tidak ditemukan, makan nilai yang akan di return adalah 0.
LEFT(t1.tanggal,7) adalah function dari MySQL untuk mengambil tujuh karakter dari kiri.

Dari mysql query di atas kita akan mendapatkan hasil

total  |  tanggal  |  prevjml
6000000   |  2019-07-30   |  84000000
84000000   |  2019-07-29   |  39000000
39000000   |  2019-07-27   |  50000000
50000000   |  2019-07-26   |  5000000
5000000   |  2019-07-18   |  6000000
6000000   |  2019-07-16   |  10000000

Dari sini bisa kita lihat nilai pada kolom prevjml sama dengan nilai pada kolom total di tanggal sebelumnya.
Sebagai contoh: nilai prevjml pada tanggal 2019-07-30 merupakan nilai total pada tanggal 2019-07-29. Dan dengan data di atas, kita sudah bisa menampilkan juga prosentase kenaikan atau penurunan penjuala dengan script PHP biasa.

Dengan demikian kita tidak perlu lagi melakukan dua kali query untuk mendapatkan nilai total sebelumnya.

Selamat mencoba.



Artikel Lainnya

Web Design Surabaya - Web Design Murah - Jasa SEO terbaik

Memeriksa Password Strength dengan pStrength jQuery Plugin

Di dalam membuat web design, terkadang kita membuat form registrasi untuk pengunjung situs kita. Salah satu fitur di dalam form registrasi adalah password.Salah satu yang dibutuhkan adalah password strength untuk menjamin keamanan akses yang lebih ba ...


Membuat input type untuk email di HTML

Pada umumnya kita sebagai web developer membuat input type berupa text atau password dengan kode seperti berikut: Untuk text: <input type="text" name="username" size="25" maxsize="15"> Untuk password: <input type="password" name="password" ...


Mencari data ulang tahun dengan PHP dan MySQL

Terkadang kita mengalami kesulitan untuk mencari siapa saja yang berulang tahun mulai dari tanggal X sampai tanggal Y jika data tersimpan di dalam database MySQL. Hal ini disebabkan karena saat disimpan di dalam database, format tanggal lahir adalah ...


Proses Pengerjaan

Web Design - Photography (foto prewedding casual, foto prewedding unik, photo pre wedding) - Videography

Lokasi di Surabaya dan Bali

Foto Buat Nikah

Desain Grafis

Kontak

08113638531 / 08113865464

info@tatamedia.com

Desainer Website di Surabaya

Web Design di Bali

Kantor

Tatamedia Solusindo Surabaya

Dekkophotography Bali

Video Prewedding

Web Design

Support

Kirim permintaan anda ke

info@tatamedia.com