Alison Wolf

Function que retorna extrato com saldo

Posts Recomendados

Salve a todos...

Tenho um pequeno sistema financeiro, onde tenho uma tabela com a seguinte estrutura:
Table extrato (id integer, data date, tipo char(1), valor real);
estou tentando criar uma função no PostgreSQL, que me traga os registros, ordenado por data, e calculando o saldo progressivo.

ex:

id, data, tipo, valor, saldo

1, 01-03-2018, C, 100, 100
2, 01-03-2018, D, 50, 50
3, 02-03-2018, C, 500, 550
4, 02-03-2018, D, 300, 250
5, 03-03-2018, D, 300, -50

Criei esta função
CREATE OR REPLACE FUNCTION public.retorna_resumo(date,date)
RETURNS SETOF extrato_financeiro
LANGUAGE 'plpgsql'
COST 100
VOLATILE
ROWS 1000
AS $BODY$

DECLARE resumo extrato_financeiro;
BEGIN
FOR resumo IN select id, data, tipo, valor from extrato where data between $1 and $2 order by data, id
LOOP
IF resumo.tipo = 'C' THEN
resumo.saldo:= resumo.saldo + resumo.valor;
END IF;
IF resumo.tipo = 'D' THEN
resumo.saldo:= resumo.saldo - resumo.valor;
END IF;

RETURN NEXT resumo;
END LOOP;
RETURN;
END;

$BODY$;

A função, até retorna as informações, mas não calcula o SALDO...

Peço ajuda, pois estou travado nisto.

Agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora