Saldo Anterior com SQL Oracle.
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:
Se alguém tiver uma ideia que possa ajudar, eu agradeço.
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
Curtidas 0
Melhor post
Luiz Vichiatto
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.
GOSTEI 1
Mais Respostas
Sergio
08/08/2017
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...
Ainda estou em pesquisa...
GOSTEI 0
Roberto Spernega
08/08/2017
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';
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';
GOSTEI 1