sql >> Databáze >  >> RDS >> Mysql

Dotaz MySQL, který přidává mezery k vyplnění mezer

Jedním z řešení je vygenerovat data pomocí poddotazu a poté tento poddotaz spojit s vaší tabulkou.

Pokud potřebujete pouze posledních 7 dní, můžete to zkusit takto:

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

pokud místo aktuálního_datu chcete mít v tabulce posledních 7 dní, váš dotaz může vypadat takto:

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

Podívejte se na housle zde .



  1. Jak změníte datový typ sloupce na serveru SQL?

  2. Je možné opravit načtení příkazů SQL ze souboru pomocí clojure.java.jdbc?

  3. #1442 - Nelze aktualizovat tabulku '*' v uložené funkci/spouštěči, protože ji již používá příkaz, který tuto uloženou funkci/spouštěč vyvolal

  4. Řazení podle řetězce, který začíná číslem - ActiveRecord