Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marisa Lima

select

Recommended Posts

Necessito verificar numa tabela se existe um determinado id de uma foreign key, isto é, tenho pessoas que são avaliadas a um dado grupo de competencias mas outras não, o que pretendo saber é em determinado ano quem foram as pessoas que não tem esse grupo de competencias para serem avaliadas!

 

tentei da seguinte forma mas não funciona direito.

 

(select * from (select distinct colaborador.nome as colab,departamento.nome, empresa.nome as emp, sub_departamento.nome as sub,dados_colaborador.data_alteracao,dados_colaborador.data_fim from colaborador left join dados_colaborador on colaborador.id=dados_colaborador.id_colaborador left JOIN empresa ON dados_colaborador.id_empresa=empresa.id left join sub_departamento on dados_colaborador.id_sub_departamento=sub_departamento.id left join departamento on sub_departamento.id_departamento=departamento.id left join momento_avaliacao_colaborador on colaborador.id=momento_avaliacao_colaborador.id_colaborador left join avaliacao_competencia_departamental_momento on momento_avaliacao_colaborador.id=avaliacao_competencia_departamental_momento.id_momento_avaliacao_colaborador where avaliacao_competencia_departamental_momento.id_momento_avaliacao_colaborador is not null and empresa.nome='Testes' ) Q1 where Q1.data_alteracao<='2013-02-28' and Q1.data_fim>='2013-02-28' OR (Q1.data_alteracao<='2013-02-28' and ((Q1.data_fim) is null)) and Q1.emp='Teste' )

 

O que está errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pela resposta.

 

Fiz da seguinte forma e funciona.

Select Count(distinct Q2.colab) as total,Q2.nome from
(
(select Q1.colab,Q1.nome from
(select distinct colaborador.nome as colab,departamento.nome, empresa.nome as emp,
sub_departamento.nome as sub,dados_colaborador.data_alteracao,dados_colaborador.data_fim,dados_colaborador.avaliado
from colaborador left join dados_colaborador
on colaborador.id=dados_colaborador.id_colaborador
left JOIN empresa ON dados_colaborador.id_empresa=empresa.id
left join sub_departamento on dados_colaborador.id_sub_departamento=sub_departamento.id
left join departamento on sub_departamento.id_departamento=departamento.id
left join momento_avaliacao_colaborador on colaborador.id=momento_avaliacao_colaborador.id_colaborador
left join avaliacao_competencia_departamental_momento on
momento_avaliacao_colaborador.id=avaliacao_competencia_departamental_momento.id_momento_avaliacao_colaborador
left join momento_avaliacao on momento_avaliacao_colaborador.id_momento_avaliacao=momento_avaliacao.id
where avaliacao_competencia_departamental_momento.id_momento_avaliacao_colaborador is null
and empresa.nome='$fab' and momento_avaliacao.ano='$ano'
) Q1
where Q1.data_alteracao<='$dados' and Q1.data_fim>='$dados' OR (Q1.data_alteracao<='$dados'
and ((Q1.data_fim) is null)) and Q1.emp='$fab'
)
union
(select Q1.colab,Q1.nome from
(select distinct colaborador.nome as colab,departamento.nome, empresa.nome as emp,
sub_departamento.nome as sub,dados_colaborador.data_alteracao,dados_colaborador.data_fim
from colaborador left join dados_colaborador
on colaborador.id=dados_colaborador.id_colaborador
left JOIN empresa ON dados_colaborador.id_empresa=empresa.id
left join sub_departamento on dados_colaborador.id_sub_departamento=sub_departamento.id
left join departamento on sub_departamento.id_departamento=departamento.id
where dados_colaborador.avaliado='NÃO' and empresa.nome='$fab'
) Q1
where Q1.data_alteracao<='$dados' and Q1.data_fim>='$dados' OR (Q1.data_alteracao<='$dados'
and ((Q1.data_fim) is null)) and Q1.emp='$fab' )
) Q2
group by Q2.nome
Penso que ficou resolvido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.