Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn MySQL bổ sung khoảng trống để lấp đầy khoảng trống

Một giải pháp là tạo ngày bằng truy vấn con, sau đó nối truy vấn con này với bảng của bạn.

Nếu bạn chỉ cần 7 ngày cuối cùng thì bạn có thể thử với điều này:

select d.testdate, coalesce(t.val1,0), coalesce(t.val2,0)
from
  (select current_date as testdate
   union all select current_date - interval 1 day
   union all select current_date - interval 2 day
   union all select current_date - interval 3 day
   union all select current_date - interval 4 day
   union all select current_date - interval 5 day
   union all select current_date - interval 6 day) d
  left join tblMyData t
  on d.testdate = t.testdate

nếu thay vì current_date, bạn muốn 7 ngày qua trong bảng, thì truy vấn của bạn có thể giống như sau:

select m.m - interval d day, coalesce(t.val1,0), coalesce(t.val2,0)
from
  (select max(testdate) as m from tblMyData) m
  cross join
  (select 0 as d
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6) d
  left join tblMyData t
  on m.m - interval d day = t.testdate

Vui lòng xem fiddle tại đây .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quyền truy cập bị từ chối đối với người dùng 'test' @ 'ip' (sử dụng mật khẩu:CÓ)

  2. cách nhập tệp excel (XLSX) vào mysql bằng cách sử dụng nodejs

  3. Cách xóa các ký tự hàng đầu không mong muốn khỏi chuỗi trong MySQL

  4. Thiết kế cơ sở dữ liệu cho các ứng dụng sử dụng thẻ bắt đầu bằng #

  5. Có thể di chuyển một bản ghi từ bảng này sang bảng khác bằng cách sử dụng một câu lệnh SQL không?