No meu aplicativo criei 3 tabelas, Empregados, EscalaDeTrabalho e EscalaDeTrabalho_Empregados. Estou tentando criar uma consulta que me retorne a escala de trabalho cadastrada em um período, sendo ascolunas os "dias", as linhas os "Empregados" e o Valor é a contagem do empregado escalado no dia, que será sempre 1. uma coluna com o total de dias trabalhado.
 
	Está dando quase tudo certo, porém em cada Empregado/dia, está me retornando a soma dos dias trabalhados do mesmo, em todos os dias, mesmo que o empregado não tenha trabalhado no dia.
 
	Como resolver?
 
SELECT Empregados.nomeEmpregado,
 Count(If(Day(EscalaDeTrabalho.data)=1,EscalaDeTrabalho_Empregados.id_EscalaDeTrabalho,0)) AS '1',
 Count(If(Day(EscalaDeTrabalho.data)=2,EscalaDeTrabalho_Empregados.id_EscalaDeTrabalho,0)) AS '2',
 Count(If(Day(EscalaDeTrabalho.data)=3,EscalaDeTrabalho_Empregados.id_EscalaDeTrabalho,0)) AS '3',
 Count(EscalaDeTrabalho_Empregados.id_EscalaDeTrabalho) AS DiasTrabalhados 
FROM Empregados INNER JOIN
 (EscalaDeTrabalho INNER JOIN
 EscalaDeTrabalho_Empregados ON
 EscalaDeTrabalho.id_EscalaDeTrabalho = EscalaDeTrabalho_Empregados.id_EscalaDeTrabalho) ON
 Empregados.idEmpregado = EscalaDeTrabalho_Empregados.id_Empregado 
WHERE (((Month(EscalaDeTrabalho.data))=12) AND
 ((Year(EscalaDeTrabalho.data))=2016)) 
GROUP BY Empregados.nomeEmpregado ORDER BY Empregados.nomeEmpregado