Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #101259
    filipedc
    Participante

      Pessoal,

      Tenho uma query aqui que trago uma coluna contendo debito e outra contendo credito, fiz uma function que me retorna o somatorio dos saldos das contas da empresa, preciso fazer agora uma coluna acumulado que pega o saldo retornado pela function e va somando ou subtraindo desse saldo.

      ex:
      saldo : 30
      debito credito acumulado
      -10 0 20
      0 20 40

      So que o problema e que quando faco um sum ele sempre soma o mesmo valor do saldo com a linha, ou seja, ele pega os 30 soma com os –10 no primeiro acumulado ele fica 20, na segunda linha ele soma o saldo novamente que e de 30 com o credito de 20 ficando 50 no acumulado.

      Espero ter conseguido explicar minha duvida.

      Aguardo respostas.

      Filipe

      #101263
      burga
      Participante

        Posta seu código aqui pra gente poder ver o que você está fazendo e poder opinar… No mais, pelo que você explicou, é o SUM mesmo que você irá utilizar.

        #101264
        filipedc
        Participante

          #Burga

          O codigo ta abaixo ai com o sum ja tentei e ele vai somando so que ele nao vai alterando o valor do saldo acho que porque estou usando funcao pra trazer o valor do saldo?!?!?!? enfim nao sei.

          SELECT
          M.DTLANC AS “Data”,
          C.CODEMP AS “Empresa”,
          (SELECT P.RAZAOSOCIAL FROM TGFPAR P, TGFFIN F WHERE P.CODPARC = F.CODPARC AND F.NUBCO = M.NUBCO) AS “Parceiro”,
          CASE WHEN M.ORIGMOV = ‘F’ THEN (SELECT F.HISTORICO FROM TGFFIN F WHERE F.NUBCO = M.NUBCO) ELSE M.HISTORICO END AS “Histórico”,
          CASE WHEN M.ORIGMOV = ‘F’ THEN ‘Financeiro’ ELSE ‘Bancário’ END AS “Origem”,
          M.NUMDOC AS “Documento”,
          C.DESCRICAO AS “Pago / Recebido por”,
          H.DESCRLANCBCO AS “Espècie”,
          CASE WHEN M.CONCILIADO = ‘S’ THEN ‘SIM’ ELSE ‘NÃO’ END AS “Conciliado”,
          M.DHCONCILIACAO AS “Data Conciliação”,
          F_TIPMOV(T.TIPMOV) AS “Tip. Mov.”,
          CASE WHEN M.RECDESP=1 THEN M.VLRLANC ELSE 0 END AS “Crédito”,
          CASE WHEN M.RECDESP=-1 THEN (M.VLRLANC)*-1 ELSE 0 END AS “Débito”,
          SALDO_CAIXA(0,[DtLancto1],C.CODEMP) AS “Saldo”
          FROM TGFMBC M
          INNER JOIN TSICTA C ON ( C.CODCTABCOINT = M.CODCTABCOINT )
          INNER JOIN TGFHBC H ON ( H.CODLANC = M.CODLANC )
          INNER JOIN TGFTOP T ON ( T.CODTIPOPER = M.CODTIPOPER )
          WHERE
          M.DTLANC >= [DtLancto1]
          AND M.DTLANC <= [DtLancto2]
          AND C.CODEMP = [CodEmp]
          GROUP BY
          M.DTLANC,
          C.CODEMP,
          M.HISTORICO,
          M.ORIGMOV,
          CASE WHEN M.ORIGMOV = 'F' THEN 'Financeiro' ELSE 'Bancário' END ,
          M.NUMDOC ,
          C.DESCRICAO ,
          H.DESCRLANCBCO ,
          M.CONCILIADO,
          M.DHCONCILIACAO ,
          M.RECDESP,
          C.CODEMP ,
          M.NUBCO ,
          T.TIPMOV,
          M.RECDESP,
          M.VLRLANC
          ORDER BY M.DHCONCILIACAO, M.RECDESP, M.NUMDOC

          #101267
          rman
          Participante

            @filipedc

            Creio que a solução é o uso de função analítica.

            Segue o seguinte artigo com exemplo de saldo acumulado:

            http://jorgesbrainstorm.blogspot.com/20 … s-sum.html

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