Consulta sql com histórico dos colaboradores
Boas.
Tenho uma aplicação para gerir avaliações de desempenho online. Os dados do colaborador são guardados em duas tabelas, uma chamada colaborador onde ficam os dados que nunca vão sofrer alteração e outra chamada dados_colaborador onde ficam os dados que podem sofrer alterações entre avaliações de desempenho, como por exemplo a pessoa mudar de função ou fábrica, já que a empresa é composta por 3 fábricas.
Este ano foi utilizada a primeira vez (avaliado ano 2012) e funcionou perfeitamente, tendo no final a necessidade de obter relatórios com informação sobre a avaliação. O meu problema é que já comecei a preparar a avaliação do ano 2013 e realizei actualizações na BD onde alguns colaboradores mudaram de fábrica!
Tenho uma data de alteração que indica quando o mesmo foi alterado, e um campo que me diz se o mesmo é ou não avaliado. O meu problema está que em 2012 a pessoa Y estava na fábrica X e em 2013 vai estar na fábrica Z. Como é que eu posso ir buscar informação por exemplo sobre quantas pessoas estão numa dada fábrica em 2013 sem comprometer o histórico de 2012?
Tentei desta forma mas só funciona para o primeiro ano:
*Select Count(*) as total,TESTE.descricao fROM *
*(Select distinct colaborador.nome,MAX(dados_colaborador.data_alteracao) as alt,funcao.descricao*
from colaborador inner join dados_colaborador on
colaborador.id=dados_colaborador.id_colaborador
inner join empresa on dados_colaborador.id_empresa=empresa.id
inner join funcao on dados_colaborador.id_funcao=funcao.id
where dados_colaborador.data_alteracao < '$dados' and dados_colaborador.estado='activo' and empresa.nome='$fab'
and dados_colaborador.avaliado='NÃO'
group by colaborador.id) TESTE
group by TESTE.descricao
Espero que me consigam ajudar. Obrigada!
Discussão (5)
Carregando comentários...