Preciso de Ajuda numa Procedure

MySQL

Delphi

Automação Comercial

Modelagem

Firebird

28/02/2015

Bom Dia, estou com problema em criar uma procedure no Firebir
Eu tenho quatro tabelas, sendo elas a SNGPC_INVENTARIO, ITENS_SNGPC_ENTRADA, ITENS_SNGPC_SAIDA, SNGPC_PERDAS

SENDO QUE EU PRECISO PEGAR O ESTOQUE DO SALDO MIAS QUE SAIA DETALHADO QUANTIDADE DE CADA TABELA EU FIZ UMA PROCEDURE ASSIM

create or alter procedure SP_SALDO_SNGPC (
COD_BARRA varchar(14))
returns (
NUM_LOTE varchar(20),
PRODUTO varchar(100),
TOTAL_ENTRADAS double precision,
TOTAL_INVENTARIO double precision,
TOTAL_SAIDAS double precision,
TOTAL_SALDO double precision)
as
begin
total_entradas = 0;
total_inventario=0;
total_saidas =0;
total_saldo =0;

for
select produto,codbarra from c000025
where codreceita = 'SIM' and codbarra = codbarra
group by produto,codbarra into :produto,:cod_barra
do
begin

select numero_lote, sum(Quant) from itens_sngpc_entrada
where cod_barras = :cod_barra
group by Numero_lote into :num_lote, :total_entradas;

select numero_lote, sum(quant) from sngpc_inventario
where cod_barras = :cod_barra
group by Numero_lote into :num_lote, :total_inventario;

select numero_lote, sum (quant) from itens_sngpc_saida
where cod_barras = :cod_barra
group by Numero_lote into :num_lote, :total_saidas;

if (:total_inventario is null) then total_inventario = 0;
if (:total_entradas is null ) then total_entradas = 0;
if (:total_saidas is null ) then total_saidas = 0;
total_saldo = ( :total_entradas + :total_inventario) - :total_saidas;

suspend;

end

end

QUANDO EU LANCO APENAS O INVENTARIO DAR TUDO CERTO, MIAS QUANDO LANCO ENTRADA OU SAIDA ELE JOGA OS VALORES EM TODOS OS LOTES

PRECISO DESSA AJUDA
Cayro Rodrigo

Cayro Rodrigo

Curtidas 0
POSTAR