Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 7 anos, 10 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #108599
    Avatar de Tadeu HALTadeu HAL
    Participante

      Meus 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

      #108601
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Blz ? 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

        #108602
        Avatar de Tadeu HALTadeu HAL
        Participante

          Meu 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.

          #108604
          Avatar photoJosé Laurindo Chiappa
          Moderador

            Perfeito, é 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. …

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.
          plugins premium WordPress