Query mysql menampilkan data berdasarkan tanggal terakhir

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.Shift 

apakah 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

Query mysql menampilkan data berdasarkan tanggal terakhir

@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.Shift
 

boleh 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

Query mysql menampilkan data berdasarkan tanggal terakhir

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

Query mysql menampilkan data berdasarkan tanggal terakhir

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.

Apa perintah query yang digunakan untuk menampilkan data?

Perintah SELECT pada MySQL adalah perintah yang digunakan untuk menampilkan data dari tabel yang ada di database dan dapat juga menjadi sebuah ekspesi.

Menampilkan data yang diinginkan dari suatu data tabel disebut dengan apa?

Select adalah perintah yang digunakan untuk menampilkan data dari tabel yang ada didatabase dan dapat juga berupa sebuah ekspesi.

Mengenal apa itu MySQL?

MySQL merupakan salah satu bentuk Database Management System (DBMS) yang menggunakan perintah Structured Query Language atau yang kerap disebut SQL. Saat ini, MySQL menjadi salah satu banyak digunakan dalam pembuatan aplikasi berbasis website.

Apa yang anda ketahui mengenai query SQL?

SQL atau Standard Query Language adalah bahasa pemrograman yang digunakan dalam mengakses, mengubah, dan memanipulasi data yang berbasis relasional.