Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Query, която добавя празни места, за да запълни празнините

Едно решение е да генерирате датите с подзаявка и след това да присъедините тази подзаявка към вашата таблица.

Ако имате нужда само от последните 7 дни, можете да опитате с това:

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

ако вместо текущата_дата искате последните 7 дни в таблицата, тогава вашата заявка може да бъде така:

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

Моля, вижте цигулка тук .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL изчисляване на кумулативна сума с условие за нулиране

  2. Изчисляване на пълзяща средна MySQL?

  3. MySQL Създаване на таблици с външни ключове, даващи errno:150

  4. Проверка на историята от таблицата и маркиране на записа според това в Mysql

  5. Как да разрешите грешката на MySQL max_user_connections