[firebase-br] Mais uma (ou duas?) Ajuda SQL

Zottis zottissistemas em brturbo.com.br
Seg Jun 22 11:03:12 -03 2009


Pessoal, to com mais um problema.

preciso buscar na Tabela FAR_MTR

os registros que contenham no Campo FARS_MTRs das Contas a Receber   o valor tal

mas o problema é que os valores desse campo são assim : 01496/09 , 02364/09 , 02567/09


tentei assim, mas retorna Nulo

select sum (F.Peso_coletado)as peso_coletado
 from Far_mtr F
 where F.Codigo_montado in (select C.Far_mtrs from ctarec C where C.Cod_conta = :Varcod_conta)

O Código_Montado é um campo calculado que retorna  um campo formatado assim 02567/09

outra dúvida é a respeito de ZERAR o Generator de codigo anual ja mencionado na semana passada.

to tentando conforme dicas dos colegas  criar uma Procedure disparada por uma trigger,

mas ta dando erro, alguém saberia como fazer?


tentei de duas formas

SET TERM ^ ;

CREATE PROCEDURE SP_ZERA_CODIGO_ANUAL_FAR 
AS
DECLARE VARIABLE Ano_atual INTEGER;
DECLARE VARIABLE Ano_far INTEGER;
DECLARE VARIABLE Ultima_data DATE;
begin
/* Forma "A" */
  Ultima_data = MAX(Far_mtr.Data_cad ) ;
  Ano_far     = EXTRACT(YEAR FROM  :Ultima_data );
  Ano_atual   = EXTRACT(YEAR FROM CURRENT_DATE);

 if ((:Ano_far) < (:Ano_atual)) then
   BEGIN

     execute statement 'ALTER SEQUENCE GEN_CODIGO_ANUAL RESTART WITH 0;'
   END

/* Forma "B" */
 SELECT MAX(F.Data_cad)FROM Far_mtr F)
  INTO
 :Ultima_data;
    IF (EXTRACT(YEAR FROM  :Ultima_data )  < EXTRACT(YEAR FROM CURRENT_DATE)) then
      BEGIN
         execute statement 'ALTER SEQUENCE GEN_CODIGO_ANUAL RESTART WITH 0;'
      END
/*SUSPEND;*/
end^

SET TERM ; ^

mas dos dois jeitos da erro.


Zottis(TeamFB Users)

Zottis Sistemas - 2009 Ano XII
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez


Mais detalhes sobre a lista de discussão lista