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:
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
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
Curtir tópico
+ 0
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+
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
Clique aqui para fazer login e interagir na Comunidade :)