GARANTIR DESCONTO

Fórum Nao consigo fazer um filtro no SQL? #58500

05/07/2007

0

Pessoal, boa noite, estou com problemas com filtros no SQL, quero filtrar se no caso as empresas nao possuem vinculos empregaticios, que na grid pelo count apareçe como 0 (zero), mais a procedure em destaque em vermelho abaixo nao esta funcionando.

Procedure TFConEmpr.EmprFunc; begin //--Procedure que mostra se a empresa tem empregados dm.qEmpresa.DisableControls; //desabilita os controles do query with dm.qEmpresa do begin close; sql.clear; sql.Add(´select E.id_empresa, E.empresa, count(F.id_func)as ID_Func, count(F.id_func)as figura from empresa E left join Funcionarios F on F.id_empresa = E.id_empresa´); sql.Add(´where F.id_func <> 0 group by 1,2 order by id_empresa´); Open; end; dm.qEmpresa.EnableControls; //habilita os controles do query end; //final da procedure [color=red:d83df08bc5]Procedure TFConEmpr.EmprFunc2; begin //--Procedure que mostra se a empresa nao tem empregados dm.qEmpresa.DisableControls; //desabilita os controles do query with dm.qEmpresa do begin close; sql.clear; //sql.add(´select * from empresa E where not exists(select * from salario_m F where F.id_empresa = E.id_empresa)´); sql.Add(´select E.id_empresa, E.empresa, count(F.id_func)as ID_Func, count(F.id_func)as figura from empresa E left join Funcionarios F on F.id_empresa = E.id_empresa´); sql.Add(´where id_func = 0 group by 1,2 order by id_empresa´); Open; end; dm.qEmpresa.EnableControls; //habilita os controles do query end; //final da procedure[/color:d83df08bc5] Procedure TFConEmpr.EmprFunc3; begin //--Procedure que mostra todas empresas dm.qEmpresa.DisableControls; //desabilita os controles do query with dm.qEmpresa do begin close; sql.clear; sql.Add(´select E.id_empresa, E.empresa, count(F.id_func)as ID_Func, count(F.id_func)as figura from empresa E left join Funcionarios F on F.id_empresa = E.id_empresa´); sql.Add(´group by 1,2 order by id_empresa´); Open; end; dm.qEmpresa.EnableControls; //habilita os controles do query end; //final da procedure


Entao pessoal, na grid primeiro chamo a procedure [b:d83df08bc5]EmprFunc3[/b:d83df08bc5] que mostra todas empresas independente de ter ou nao funcionários, a procedure [b:d83df08bc5]EmprFunc[/b:d83df08bc5] Esta filtrando corretamente ou seja no where ja esta dizendo que tem que ser # diferente de 0 (zero) agora na procedure [b:d83df08bc5]EmprFunc2[/b:d83df08bc5] que estou querendo que mostre apenas as empresas que nao possuem empregados nao funciona :( sendo que na dbgrid apareçe o campo [b:d83df08bc5]ID_Func[/b:d83df08bc5] como 0 (zero), mais no filtro nao filtra nada.

Serah que tem algo haver com esse query fazer esse campo [b:d83df08bc5]count(id_func)[/b:d83df08bc5] em tempo de execução? Pois nao existe este campo na tabela Empresa esta sendo vinculada com a tabela Funcionarios o select.

Alguem pode me ajudar?

Banco = Firebird 2.0 - Componente para o filtro zQuery zeos 6.6.1

Adriano.


Adriano_servitec

Adriano_servitec

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar