sql >> Databáze >  >> RDS >> Sqlserver

SQL Jak zobrazit hodnotu '0' pro měsíc, pokud v tabulce pro daný měsíc neexistují žádná data

Můžete se dotazovat na tabulku s hodnotami 1-12 a levým vnějším spojením vašeho výsledku.

Zde je příklad použití proměnné tabulky namísto vašeho dotazu a CTE k vytvoření tabulky s čísly.

declare @T table
(
  Month int
)

insert into @T values(1)
insert into @T values(1)
insert into @T values(1)
insert into @T values(3)
insert into @T values(3)

;with Months(Month) as
(
  select 1
  union all
  select Month + 1
  from Months
  where Month < 12
)
select M.Month,
       count(T.Month) Count,
       isnull(sum(T.Month), 0) Sum
from Months as M
  left outer join @T as T
    on M.Month = T.Month
group by M.Month

Výsledek:

Month       Count       Sum
----------- ----------- -----------
1           3           3
2           0           0
3           2           6
4           0           0
5           0           0
6           0           0
7           0           0
8           0           0
9           0           0
10          0           0
11          0           0
12          0           0


  1. Návrh DB tabulky s mnoha řádky a mnoha sloupci s binárními informacemi

  2. Sloupec 'Mary' neexistuje

  3. Jak propojit výsledky PGSeaerch se stránkou indexu ve vnořených zdrojích?

  4. ověřte věk před registrací uživatele a zkontrolujte, zda překročil určitý věk pomocí mvc