[firebase-br] ajuda com stored procedure
Sandro Souza
escovadordebits em gmail.com
Seg Set 12 17:10:49 -03 2011
Bom dia/tarde Reijânio.
Testa o seguinte código:
SET TERM ^ ;
CREATE OR ALTER PROCEDURE REPROCESSA(
PCOD VARCHAR(20)
) RETURNS (
PSALDO NUMERIC(10,2),
PENTRADAS NUMERIC(10,2),
PSAIDAS NUMERIC(10,2)
) AS
BEGIN
// Calcula o somatório da quantidade de entrada.
SELECT COALESCE(SUM(QTDE), 0)
FROM MOVIMENTO_ESTOQ
WHERE(CODPROD = :PCOD)AND(TP_MOV = 'E')
INTO :PENTRADAS;
// Calcula o somatório da quantidade de saída.
SELECT COALESCE(SUM(QTDE), 0)
FROM MOVIMENTO_ESTOQ
WHERE(CODPROD = :PCOD)AND(TP_MOV = 'S')
INTO :PSAIDAS;
// Calcula o saldo atual.
PSALDO = PENTRADAS - PSAIDAS;
// Retorna os resultados.
SUSPEND;
END^
SET TERM ; ^
Espero ter ajudado mais que atrapalhado.
Em 29 de agosto de 2011 14:31, Reijanio Nunes Ribeiro
<rnribeiro em gmail.com>escreveu:
> boa tarde a todos esou com um pequeno problema com uma SP que não funciona
> poderiam me ajudar
>
> a ideia era fazer o reprocessamento de estoque, eta sintaxe me foi enviada
> por um colega da lista então gostaria muito da ajuda dos amigos para
> entender o que acontece pois ela sempre retorna 0
>
> CREATE OR ALTER PROCEDURE REPROCESSA (
> pcod varchar(20))
> returns (
> psaldo numeric(10,2),
> pentradas numeric(10,2),
> psaidas numeric(10,2))
> as
> begin
> /* Procedure Text */
> for select E.codprod from ESTOQUE E
> order by E.codprod
> into :pcod
> do begin
> /*total de entradas*/
> select SUM(M.qtde) FROM movimento_estoq m
> where M.CODPROD = :pcod AND M.tp_mov = 'E'
> into :pentradas;
> if (pentradas IS NULL) then pentradas = 0;
> /*TOTAL DE SAIDAS*/
> select SUM(M.qtde) FROM movimento_estoq m
> where M.CODPROD = :pcod AND M.tp_mov = 'S'
> into :psaidas;
> if (psaidas IS NULL) then psaidas = 0;
> /*SALDO*/
> psaldo = pentradas - psaidas;
> suspend;
> end
> end
>
> sempre retorna zero e gostaria de saber se assim faz o recalculo do
> estoque
> ou preciso usar um update nesta sentença
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista