Re: [firebase-br] Alguém pode me dar uma mão c/ FOR Execute Statement

José Filho (UOL) jfilho.bg em uol.com.br
Seg Jan 2 17:57:35 -03 2006


Obrigado a você também, Ton. Mas, o que eu estava tentando fazer era 
exatamento a dica que o jony me passou. Fico agradecido pela ajuda.

[ ]'s

José Filho
Barra do Garças-MT


----- Original Message ----- 
From: "Ton" <hevertonc em hotmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Monday, January 02, 2006 3:00 PM
Subject: RES: [firebase-br] Alguém pode me dar uma mão c/ FOR Execute 
Statement


   Olá...

   Pelo que entendi de sua procedure, vc está usando Execute Statement só
por causa da linha do produtor, é isso mesmo?

   Se for, vc nem precisa usar isso o execute statement, faz assim que
funciona e resolve o seu problema:

SELECT RL.LEI_PRODUTOR,
       P.PRO_NOME,
       P.PRO_CNPJCPF,
       P.PRO_COTALITRO,
       P.PRO_COTAPERC,
       P.PRO_BONIFICAVLR,
       P.PRO_BONIFICAPERC,
       P.PRO_TANQUE,
       P.PRO_TAXATANQUE,
       P.PRO_FRETEVALOR,
       P.PRO_FRETEPERC,
       RL.LEI_LINHA,
       L.LIN_CARRETEIRO,
       L.LIN_PAGAFRETE,
       SUM(RL.LEI_BOM),
       SUM(RL.LEI_ACIDO
  FROM RECLEITE RL LEFT
  JOIN PRODUTORES P
    ON (P.PRO_CODIGO = RL.LEI_PRODUTOR) LEFT
  JOIN LINHAS L
    ON (L.LIN_CODIGO = RL.LEI_LINHA)
 WHERE EXTRACT (MONTH FROM RL.LEI_DATA) = :MES
   AND EXTRACT (YEAR FROM RL.LEI_DATA) = :ANO
/* Esta linha verifica se o produtor é igual ao parâmetro ou o parâmetro é
nulo, caso o parâmetro seja nulo, ele trás todos os produtores */
>>   AND (RL.LEI_PRODUTOR = :PRODUTOR OR :PRODUTOR IS NULL) <<
 GROUP BY RL.LEI_PRODUTOR,
          P.PRO_NOME,
          P.PRO_CNPJCPF,
          P.PRO_COTALITRO,
          P.PRO_COTAPERC,
          P.PRO_BONIFICAVLR,
          P.PRO_BONIFICAPERC,
          P.PRO_TANQUE,
          P.PRO_TAXATANQUE,
          P.PRO_FRETEVALOR,
          P.PRO_FRETEPERC,
          RL.LEI_LINHA,
          L.LIN_CARRETEIRO,
          L.LIN_PAGAFRETE
 ORDER BY L.LIN_CARRETEIRO,
          P.PRO_NOME';
  INTO :LEI_PRODUTOR,
       :PRO_NOME,
       :PRO_CNPJCPF,
       :PRO_COTALITRO,
       :PRO_COTAPERC,
       :PRO_BONIFICAVLR,
       :PRO_BONIFICAPERC,
       :PRO_TANQUE,
       :PRO_TAXATANQUE,
       :PRO_FRETEVALOR,
       :PRO_FRETEPERC,
       :LEI_LINHA,
       :LIN_CARRETEIRO,
       :LIN_PAGAFRETE,
       :LEI_BOM,
       :LEI_ACIDO

   Isso fica bem simples e funciona bem legal.

   Abraços...

        Ton
Analista de Sistemas
 DotCom Informática

"A informação não é um produto,
mas sim a matéria prima." (Ton) 



---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 0601-0, 02/01/2006
Tested on: 2/1/2006 16:57:36
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com







Mais detalhes sobre a lista de discussão lista