Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter uma contagem mesmo se não houver resultados correspondentes ao mysql?


Para fazer isso, você pode criar uma tabela de 'mês' e, em seguida, usar uma junção externa esquerda entre essa tabela e a tabela de relatórios.

Eu nunca usei o mysql, então peço desculpas se a sintaxe estiver um pouco errada, mas esta seria a consulta:
SELECT months.monthNumber,
    count(reports.id) AS `count`
FROM `months` left outer join `reports` on months.monthNumber = month(reports.date_lm) 
WHERE (status = 'submitted') 
AND (date_lm > 2012-08) 
GROUP BY monthNumber
ORDER BY monthNumber ASC

É importante ressaltar que a contagem deve ser de uma coluna na tabela de relatórios, não na tabela de meses, caso contrário você nunca obteria um zero.