Suponha que eu tenha uma tabela chamada “produtos”:
Productive product-name product-quantity created-date
111 ABC 10 1/10/2018
222 XYZ 20 1/10/2018
333 PQR 30 1/11/2018
444 MNC 40 1/15/2018
555 DEF 50 1/11/2018
Se eu executar esta consulta:
Select convert(date,createddate,101), count(product-quantity) from products
Where created-date > 1/9/2018 and created-date < 1/16/1018
group by convert(date,createddate,101)
O que me dará saídas como
created-date. product-quantity
1/10/2018 30
1/11/2018 80
1/15/2018 40
Eu quero alcançar:
created-date. product-quantity
1/10/2018 30
1/11/2018 80
1/12/2018 00
1/13/2018 00
1/14/2018 00
1/15/2018 40
Como eu posso fazer isso?
Uma implementação básica de uma tabela de calendário.
Observe que usei um LEFT JOIN para obter todos os registros da tabela de calendário e apenas os registros que correspondem à tabela de produtos.
dbfiddle aqui