Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Isi celah yang hilang dalam kueri rentang tanggal menggunakan tabel kalender

Anda memerlukan gabungan luar di tabel kalender. Sesuatu seperti

SELECT c.cal_date, coalesce(t1.price, 0) as total
FROM calendar c
LEFT JOIN (SELECT b.purchase_date::date, sum(price) as price 
           FROM order_products a 
           INNER JOIN order_saved b 
                   ON a.order_id = b.id 
                   AND b.purchase_date BETWEEN '2011-09-16 23:59' AND '2011-10-16 23:59' 
                   AND b.status > 2
                   AND a.usr_id = 'XXXX'
            GROUP BY b.purchase_date) t1 on t1.purchase_date = c.cal_date
WHERE cal_date BETWEEN '2011-09-16 23:59' AND '2011-10-16 23:59' 
ORDER BY c.cal_date

Anda akan mendapatkan jawaban yang lebih baik jika Anda memposting DDL (CREATE TABLE ) pernyataan, dan minimal INSERT pernyataan yang memberi kita cukup data untuk benar-benar menguji jawaban kita. (Edit pertanyaan Anda dan tempel pernyataan DDL dan INSERT.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP &MySQL membandingkan kata sandi

  2. Laravel:PDOException:tidak dapat menemukan driver

  3. Saya tidak menemukan kesalahan apa pun. Kode ini berfungsi dengan baik. Perbarui data saya dengan sempurna. tetapi 1 kesalahan ditampilkan

  4. MySQL Cast sebagai Boolean

  5. pilih semua catatan yang dibuat dalam satu jam