› Fóruns › SQL e PL/SQL › Como apurar saldo linha a linha com query oracle.
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 9 anos, 6 meses atrás por
José Laurindo Chiappa.
-
AutorPosts
-
26 de janeiro de 2017 às 3:36 pm #108599
Tadeu HAL
ParticipanteMeus caros.
Preciso construir uma query no ORACLE que seja capaz de apurar saldo de estoque linha a linha.
Posteriormente esta query irá se transformar em um refcursor.
Hoje tem uma procedure que executa esta tarefa, porém gera uma tabela temporária e acredito que pelo motivo de ter que fazer inserts, updates e o volume dados a performance não tem sido boa. Lembrando que para o saldo inicial tenho uma função que me retorna o mesmo.
A dificuldade para mim está em pegar o saldo atual da linha atual e transformar em saldo anterior já que a coluna de saldo atual é calculada ex:
((Saldo_anterior + quantidade_entradas) – quantidade_saidas).Desde já agradeço a ajuda dos colegas, abraço a todos.
Tadeu
26 de janeiro de 2017 às 4:07 pm #108601José Laurindo Chiappa
ModeradorBlz ? Então, sem um exemplo completinho (que INCLUA CREATE TABLEs e uns INSERTs pra termos dados de teste) ** mas ** que seja Curto (não adianta colar aqui tua rotina de produção longa e complexa , com tabelas com uma dúzia de colunas e tals, que NINGUÉM tem tempo de depurar isso não) fica difícil de dar qualquer detalhe mais concreto, mas de modo geral, pra vc poder calcular algo que exija um valor num registro anterior vc usa as FUNÇÕES ANALÍTICAS … Elas são parte padrão da linguagem SQL no RDBMS Oracle, e o que elas fazem é justamente o que vc quer ao que entendi ie : agrupar os dados por determinados critérios e ler registro-a-registro, permitindo vc referenciar valores do registro anteriormente lido OU (até mesmo) do próximo registro a ser lido….
Dá uma estaudada na Documentação e como exemplo de acesso à registro anterior https://asktom.oracle.com/pls/asktom/f%3Fp%3D100:11:0::::P11_QUESTION_ID:1793764100346222947 exemplifica com RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) e https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:689218100346648506 com LAG…[]s
Chiappa
26 de janeiro de 2017 às 4:14 pm #108602Tadeu HAL
ParticipanteMeu caro jlchiappa, agradeço por sua ajuda até aqui, porém vou olhar a documentação e colocar um exemplo de como estou montando a query aqui de uma maneira bem resumida.
Abraço e Obrigado.
26 de janeiro de 2017 às 9:43 pm #108604José Laurindo Chiappa
ModeradorPerfeito, é isso mesmo que recomendo : dá uma olhada nas refs da documentação sobre o Assunto, uma lida nos sites de referência que indiquei, qquer dúvida em cima disso manda um exemplo *** CURTÍSSIMO *** mas funcional e nos diga a lógica que a gente tenta palpitar em cima. …
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › Como apurar saldo linha a linha com query oracle.