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

Jaký je nejpřímější způsob, jak vyplnit prázdná data ve výsledcích SQL (na konci mysql nebo perl)?

Když něco takového potřebujete na straně serveru, obvykle vytvoříte tabulku, která obsahuje všechna možná data mezi dvěma časovými body, a pak levou spojíte tuto tabulku s výsledky dotazu. Něco jako toto:

create procedure sp1(d1 date, d2 date)
  declare d datetime;

  create temporary table foo (d date not null);

  set d = d1
  while d <= d2 do
    insert into foo (d) values (d)
    set d = date_add(d, interval 1 day)
  end while

  select foo.d, count(date)
  from foo left join table on foo.d = table.date
  group by foo.d order by foo.d asc;

  drop temporary table foo;
end procedure

V tomto konkrétním případě by bylo lepší provést malou kontrolu na straně klienta, pokud aktuální datum není previos+1, vložte nějaké další řetězce.



  1. Skupiny dostupnosti SQL Server AlwaysOn:Instalace a konfigurace. Část 2

  2. Jaký je připojovací řetězec pro localdb pro verzi 11

  3. Jak spojit dvě tabulky mysql?

  4. Postgres NENÍ v poli