Ir para conteúdo

Arquivado

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

Viper33

count

Recommended Posts

Estou tentando realizar uma consulta SQL para contar os cargos que um funcionário assumiu na empresa. Na forma a seguir, a consulta retorna um resultado, porém errado: o funcionário 1 possui 2 cargos na empresa mas a consulta conta apenas 1 cargo.

 

SELECT f.nm_funcionario, s.salario_inicial, s.salario_atual, c.cargo, COUNT( c.id_cargo ) AS 'Quantidade de Cargos'
FROM tb_funcionario f, tb_salario s, tb_cargo c, tb_func_cargo fc
WHERE f.id_func = fc.id_func
AND c.id_cargo = fc.id_cargo
AND c.id_cargo = s.id_cargo
AND fc.dt_dem =0000 -00 -00
GROUP BY c.cargo
ORDER BY f.nm_funcionario
Se eu tirar o GROUP BY da consulta, ela me lista apenas o funcionário que possui os 2 cargos.
Onde está o erro?
E como exibir a coluna count em um formulário?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema pode ser o quantidade de linhas no select

 

tente algo como ...

SELECT f.nm_funcionario, COUNT( c.id_cargo ) AS  'Quantidade de Cargos'
FROM tb_funcionario f, tb_salario s, tb_cargo c, tb_func_cargo fc
WHERE f.id_func = fc.id_func
AND c.id_cargo = fc.id_cargo
AND c.id_cargo = s.id_cargo
AND fc.dt_dem =0000 -00 -00
GROUP BY f.nm_funcionario
ORDER BY f.nm_funcionario

Precisando de mais dados talvez com o uso de uma tabela virtual ou este select count como uma coluna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, descobri o erro no meu sql. Aliás, na verdade está certo. O problema era que o funcionário que foi demitido era o que possuía dois cargos. E como no sql eu coloquei para listar os que ainda não tinham sido demitidos, não ia listar os que tinham mais de um cargo, mas foram demitidos de um deles. Depois que inseri mais dados pude ter uma visão melhor. Agora preciso saber como mostrar essa coluna calculada em um formulário. Mas isso vou ver lá no forum de PHP. Obrigado.

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.