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:
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
Curtir tópico
+ 0
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
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...
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';
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
Clique aqui para fazer login e interagir na Comunidade :)