No meu aplicativo criei 3 tabelas,Empregados,EscalaDeTrabalhoeEscalaDeTrabalho_Empregados. Estou tentando criar uma consulta que me retorne a escala de trabalho cadastrada em um período, sendo ascolunasos "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
Pergunta
Ivanenko
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
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.