mau nanya master soal query nih saya ada query seperti ini
SELECT DATE (a.CreateDate) tanggal, a.Shift, ROUND(SUM(a.qty)/1000) total, MAX(b.total) subTotal FROM tbDataTrans_Moll_In a JOIN ( SELECT DATE (a.CreateDate) tanggal, SUM(a.qty) total FROM tbDataTrans_Moll_In a WHERE (a.CreateDate) <= curdate() and date(a.CreateDate) > curdate() -interval 7 day AND NOW() AND a.shift=2 GROUP BY DATE (a.CreateDate)) b ON DATE (a.CreateDate) = b.tanggal WHERE (a.CreateDate) < DATE(NOW()) AND a.shift=3 GROUP BY DATE (a.CreateDate), a.Shiftapakah query tersebut bener untuk mendapatkan - 7 hari dari sekarang, dan ketika datanya ga tersedia contoh nya pada tanggal 1 - 5 ada dan pada 6 datanya 0, dan 7 ada data, karena tanggal ke 6 maka data ga di tampilkan di query, apakah bisa membuat query menampilkan data kosong tersebut mhon bimbingannya makasih
@Ridhoa
120 Kontribusi 29 Poin
Dipost: 4 tahun yang lalu Update 2 tahun yang lalu
Jawaban
setahu saya, yap ini akan memunculkan data hari ini -7 hari sampai hari ini. Dan maksud dari menampilkan data kosong seperti apa ya ? disini filter data (selain tanggal) hanya ada shift, jika shift tidak ada di hari itu maka data tidak ditampilkan
coba pake left join / LEFT OUTER join
@dianarifr
642 Kontribusi 316 Poin
Dipost: 4 tahun yang lalu
nah iya mas @lukmanfreedom kan data di sana emang tidak ada atau nol apakah bisa di tampilkan dalam angka 0 nya ? jadi data yang keluar dari tanggal 1 sampai 7 ?
@Ridhoa
120 Kontribusi 29 Poin
Dipost: 4 tahun yang lalu
contoh nya gmn mas ? @dianarifr
@Ridhoa
120 Kontribusi 29 Poin
Dipost: 4 tahun yang lalu
maksudnya @dianarifr seperti ini
SELECT DATE (a.CreateDate) tanggal, a.Shift, ROUND(SUM(a.qty)/1000) total, MAX(b.total) subTotal FROM tbDataTrans_Moll_In a LEFT JOIN ( SELECT DATE (a.CreateDate) tanggal, SUM(a.qty) total FROM tbDataTrans_Moll_In a WHERE (a.CreateDate) <= curdate() and date(a.CreateDate) > curdate() -interval 7 day AND NOW() AND a.shift=2 GROUP BY DATE (a.CreateDate)) b ON DATE (a.CreateDate) = b.tanggal WHERE (a.CreateDate) < DATE(NOW()) AND a.shift=3 GROUP BY DATE (a.CreateDate), a.Shiftboleh dicoba @Ridhoa
kalau seperti di atas malah memunculkan semua data pada table mas dari bulan 1 sampai bulan sekarang
@Ridhoa
120 Kontribusi 29 Poin
Dipost: 3 tahun yang lalu
Login untuk gabung berdiskusi
SQL merupakan singkatan dari Structured Query Language, sebuah perintah khusus yang berfungsi untuk mengakses data kedalam database, sql juga sering disebut dengan istilah query, atau bahasa untuk menjalankan sebuah perintah ke database, nah pada tutorial kali ini kita juga akan membahas mengenai sql yaitu SQL Untuk Menampilkan Data Berdasarkan Tanggal, biasa nya perintah sql ini sering sekali digunakan pada sebuah report atau laporan, jadi jika kita ingin membuat sebuah sistem dan pada sistem tersebut terdapat sebuah data yang ingin kita tarik atau kita tampilkan, misalnya data yang ingin kita tampilkan ini dari tanggal 1 januari 2010 sampai dengan 31 desember 2017, sehingga data yang akan tampil nanti nya hanya dari tanggal 1 januari 2010 sampai dengan 31 desember 2017.
Nah untuk menjalankan perintah sql tersebut pastikan teman-teman telah membuat databasenya terlebih dahulu dan berikutnya kita akan membuat sebuah table dengan nama murid didalam table murid tersebut terdapat sebuah field sebagai berikut
Pada field date nya kita menggunakan timestamp kemudian default kita gunakan CURRENT_TIMESTAMP yaitu berfungsi untuk menginput tanggal sekarang secara otomatis tapi jika kita juga bisa merubahnya sesuai dengan kebutuhan.
Jika kita telah membuat tablenya selanjutnya kita akan insert data atau kita akan memasukan data kedalam table murid yang telah kita buat, teman-teman juga bisa menggunakan sql dibawah ini untuk insert data
INSERT INTO`test`.`murid`( `id`, `nama_depan`, `nama_belakang`, `alamat` , `date` ) VALUES (NULL,'putra','arianto','jakarta',CURRENT_TIMESTAMP), (NULL, 'andy','pamungkas','cengkareng',CURRENT_TIMESTAMP), (NULL,'renol','putra','jakarta','2017-04-18 03:08:03'), (NULL ,'rido','pamungkas','cengkareng',CURRENT_TIMESTAMP), (NULL,'rizal','muri','cengkareng','2017-04-25 02:06:18') ; |
Setelah kita insert datanya kita bisa menggunakan SQL Untuk Menampilkan Data Berdasarkan Tanggal seperti dibawah ini
SELECT *FROM murid WHERE(date BETWEEN'2017-04-18'AND'2017-04-21') |
Jika sql diatas kita jalankan maka akan muncul data seperti dibawah ini
dan kita juga bisa menggunkan sql dibawah ini untuk menampilkan data yang sebelumnya sampai dengan data yang telah diupdate sekarang dengan cara
SELECT *FROM murid WHERE(date BETWEEN'2017-04-19'ANDNOW(date)) |
fungsi dari NOW(date) diatas yaitu untuk menampilkan data sebelumnya sampai dengan tanggal sekarang
Oke teman-teman cukup paham ya SQL Untuk Menampilkan Data Berdasarkan Tanggal, sekian dulu tutorial saya kali ini tentang SQL Untuk Menampilkan Data Berdasarkan Tanggal.
Semoga Bermanfaat.
Terimakasih.