Ajuda em Query

Firebird

16/10/2004

Boa Tarde pessoal:
Estou migrando um sistema de Paradox para Firebird, e estou com dúvidas para
montar o seguinte select:
Tenho as tabelas:[b:e19e475351]
Empresa : EMPCOD(*) ,EMPNOM

Funcionarios: FUNCOD(*),EMPCOD(**),FUNNOM,FUNLIM,FUNSIT

Financeiro: NRTIT(*),EMPCOD(**),FUNCOD(**),TITVAL

(*) = PRIMARY KEY
(**)= FOREIGN KEY[/b:e19e475351]

Dado uma empresa preciso obter de seus funcionarios os seguintes
campos(CODIGO,NOME,SITUACAO,LIMITE DE CREDITO),também a soma de todos os seus
titulos que estao na tabela Fianceiro, no paradox eu tinha uma query assim:
SELECT EMP.EMPCOD, FUNC.FUNCOD, FUNC.FUNNOM, FUNC.CL2SIT, FUNC.FUNLIM,
SUM( FINAN.TITVAL ) AS TOTAL
FROM "EMPRESAS" EMP
INNER JOIN "FUNCIONARIOS" FUNC
ON (EMP.EMPCOD = FUNC.EMPCOD)
INNER JOIN "TITULOS" FINAN
ON (FUNC.EMPCOD = FINAN.EMPCOD)
AND (FUNC.FUNCOD = FINAN.FUNCOD)
WHERE EMP.EMPCOD =:EMPCOD
GROUP BY EMP.EMPCOD, FUNC.FUNCOD, FUNC.FUNNOM, FUNC.FUNSIT, FUNC.FUNLIM


Esta qry foi gerada no Querybuilder no antigo sistema em paradox, portando não me preocupei com nada apenas fui ligando os campos.

Teria como melhorar a qry acima para o firebird, digamos para ober uma
performance melhor?
E como ficaria esta qry?
Seria melhor escrever uma procedure ?

Se alguém puder me ajudar desde já agradeço
Fausto


Faustoalves

Faustoalves

Curtidas 0

Respostas

Afarias

Afarias

16/10/2004

bom, primeira coisa q eu faria era tirar essa tabela EMPRESA da query visto q ela não tem função nenhuma::

SELECT FUNC.EMPCOD, FUNC.FUNCOD, FUNC.FUNNOM, FUNC.FUNSIT, FUNC.FUNLIM, SUM(FINAN.TITVAL) AS TOTAL
FROM FUNCIONARIOS FUNC
INNER JOIN TITULOS FINAN ON (FUNC.FUNCOD = FINAN.FUNCOD)
WHERE FUNC.EMPCOD =:EMPCOD
GROUP BY FUNC.EMPCOD, FUNC.FUNCOD, FUNC.FUNNOM, FUNC.FUNSIT, FUNC.FUNLIM


depois, caso seja necessário ainda vc pode pensar em um SP ou outra solução


T+


GOSTEI 0
POSTAR