Fórum Ajuda em Query #47502

16/10/2004

0

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

Responder

Posts

16/10/2004

Afarias

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+


Responder

Gostei + 0

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

Aceitar