Saldo Anterior com SQL Oracle.

08/08/2017

0

Bom galera sou iniciante, no Oracle, mas tenho conseguido absorver bastante coisa, porém me deparei com um problema de soma de saldo anterior.
Estou fazendo um select, para buscar o saldo de um banco, porém preciso pegar também o saldo anterior, para bater o valor do saldo atual, e não estou conseguindo, para fazer o acumulado estou usando a função abaixo:

SUM((SUM(MBC.VLRLANC * (MBC.RECDESP)))) OVER (ORDER BY TRUNC(MBC.DTLANC) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS ACUMULADO


Se alguém tiver uma ideia que possa ajudar, eu agradeço.
Sergio

Sergio

Responder

Post mais votado

08/08/2017

Sergio, em um sistema que desenvolvi, em mssql, tive que criar um artificio para atualizar o saldo a cadas entrada na tabela, por sempre um distinto emitir um cheque, e não lançar no sistema, isso dava uma dor de cabeça, porque o saldo não batia, então tinha uma storeprocedure que atualizava o saldo a cada lançamento, porém tinha um período que tinha que ser indicado (data inicial e final), e para evitar períodos extensos há a necessidade de encerramento do mês, assim evitava um acúmulo maior que 30 dias para calcular.

Luiz Vichiatto

Luiz Vichiatto
Responder

Mais Posts

09/08/2017

Sergio

Luizaummm, realmente isso esta dando uma dor de cabeça e tanto, eu coloco o período para pesquisa do fluxo de caixa, porém trazer o saldo anterior é que ta pegando.
Ainda estou em pesquisa...
Responder

10/08/2017

Roberto Spernega

Sergio, um exemplo bem simples é usando o LAG, mas depende da estrutura da tabela e do select.

Neste exemplo eu trago o número da nota anterior:

select num_nota, data_emissao ,LAG(num_nota) over (order by num_nota) Nota_Anterior
from nota_fiscal
where data_emissao = '09-ago-17';
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar