[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