Viper33 1 Denunciar post Postado Abril 7, 2014 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
Motta 645 Denunciar post Postado Abril 7, 2014 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
Viper33 1 Denunciar post Postado Abril 8, 2014 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