Considere uma tabela preenchida com datas de 2010 a 2050.
Suponha uma tabela de dados (chamada Lease
) com alguns dados e inclui uma coluna de data, Move_Out_Date
.
O objetivo é contar os registros com datas de saída em cada ano/mês.
Um simples Group By
obtém a resposta correta:
SELECT
YEAR(move_out_date) MOYear,
MONTH(move_out_date) MOMonth,
COUNT(move_out_date) AS Count
FROM
lease l
WHERE
YEAR(move_out_date) = '2019'
GROUP BY
YEAR(move_out_date),
MONTH(move_out_date)
ORDER BY
YEAR(move_out_date),
MONTH(move_out_date)
Esta consulta produz esta saída:
ANO | MÊS | CONTAR |
---|---|---|
2019 | 9 | 2 |
2019 | 10 | 4 |
2019 | 12 | 3 |
O que estou procurando é isto:
ANO | MÊS | CONTAR |
---|---|---|
2019 | 1 | 0 |
2019 | 2 | 0 |
2019 | 3 | 0 |
2019 | 4 | 0 |
2019 | 5 | 0 |
2019 | 6 | 0 |
2019 | 7 | 0 |
2019 | 8 | 0 |
2019 | 9 | 2 |
2019 | 10 | 4 |
2019 | 11 | 0 |
2019 | 12 | 3 |
Tenho mexido com junções cruzadas e junções externas esquerdas na tabela de datas, mas sempre acabo com números enormes para as contagens.