Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
andre_tonini
Creator II
Creator II

Extrato Bancário - Saldo Anterior

Olá Pessoal,

        Estou montando uma analise do movimento bancário e precisaria gerar o saldo anterior para que seja possível: saldo anterior + entrada – saída = saldo atual

         Se alguém puder me ajudar desde já agradeço.

Data LançamentoSaldo InicialValor_EntradaValor_SaídaSaldo Final
01/06/20141.000,00

200,00

100,00

1.100,00
04/06/20141.100,000,00100,001.000,00
08/06/20141.000,000,00300,00700,00

O saldo inicial é o saldo final do dia anterior. Mas pode haver intervalos de dadas.
O Valor_Entradas e Valor_Saída já busco do banco de dados.
O Saldo Final é Saldo Inicial + Valor Entrada - Valor Saída.

Tratei o script da seguinte forma.

  // --- Conta Caixa --- //
SQL SELECT
      CD_CONTA,   
      CD_GRUPOCXA,
      NM_CONTA
FROM CONTACXA WHERE CD_GRUPOCXA > '0';

// --- Lançamentos no Caixa --- //
LOAD

*,
YEAR(DT_MOVIMENTO) AS ANO,
MONTH(DT_MOVIMENTO) AS MES,
DAY(DT_MOVIMENTO) AS DIA,
DATE(DT_MOVIMENTO) AS DATA,
WEEK(DT_MOVIMENTO) AS SEMANA,
WEEKDAY(DT_MOVIMENTO) AS DIA_SEMANA;

SELECT
     CD_CONTA,   
     CD_FILIAL,  
     DT_LANCAMENTO,     
     DT_MOVIMENTO,
     FL_CONCILIADO,     
     FL_DC,
     NM_HISTORICO,
     VL_LANCAMENTO,
    
// ENTRADA
    CASE
          WHEN FL_DC = 'D' AND CD_FILIAL = '1'
               THEN (VL_LANCAMENTO)
                  ELSE
                         0
           END
                AS VALOR_ENTRADA,

      // SAIDA
     CASE
          WHEN FL_DC = 'C' AND CD_FILIAL = '1'
              THEN (VL_LANCAMENTO)
                  ELSE
                         0
           END
                AS VALOR_SAIDA,
 
      NR_DOCUMENTO,
      SR_DOCUMENTO,
      TP_LANCAMENTO
FROM FINCXALCT;

MOVIMENTO:          
LOAD
CD_FILIAL,   
CD_CONTA,
DT_MOVIMENTO,
VL_LANCAMENTO,
FL_DC,
rangesum (
  
if (CD_FILIAL = Peek(CD_FILIAL) AND CD_CONTA = PEEK (CD_CONTA),
      
rangesum ((VALOR_SAIDA-VALOR_ENTRADA), PEEK (SALDO)), (VALOR_SAIDA-VALOR_ENTRADA)))

           AS  SALD0_CAIXA
RESIDENT FINCXALCT ORDER BY DT_MOVIMENTO;

1 Solution

Accepted Solutions
cesaraccardi
Specialist
Specialist

Beleza Andre,

Eu acredito que o valor anterior você não precisa criar no script, pode ser uma expressão mesmo.

Com os campos SALDO, VALOR_ENTRADA e VALOR_SAIDA dá para recuperar o valor anterior:

sum(SALDO-VALOR_ENTRADA+VALOR_SAIDA)

Abs,

Cesar

View solution in original post

15 Replies
cesaraccardi
Specialist
Specialist

Olá Andre,


Eu anexei um arquivo de exemplo, vê se é isso que você precisa.


Abs,


Cesar

andre_tonini
Creator II
Creator II
Author

Bom dia Cesar,

      Ótima dica, ajudou bastante porém precisaria ter uma coluna que apresente o saldo anterior (saldo) do ultimo movimento. Abaixo segue ilustração na coluna em AMARELO.

      Isso é possivel?

      Abraço

11.jpg

cesaraccardi
Specialist
Specialist

Beleza Andre,

Eu acredito que o valor anterior você não precisa criar no script, pode ser uma expressão mesmo.

Com os campos SALDO, VALOR_ENTRADA e VALOR_SAIDA dá para recuperar o valor anterior:

sum(SALDO-VALOR_ENTRADA+VALOR_SAIDA)

Abs,

Cesar

rogerioqv
Creator II
Creator II

André...

Veja se te ajuda...

Abraços.

MarcoARaymundo
Creator III
Creator III

Segue exemplo

andre_tonini
Creator II
Creator II
Author

Olá Marco,

    Você tem como postar o script para que eu possa analisar, não estou conseguindo abrir esse qvw!!

     abraço

     André

andre_tonini
Creator II
Creator II
Author

Rogério,

        Você consegue enviar para mim o script da carga, pois também não estou conseguindo abrir esse .qvw não sei se pode estar corrompido o arquivo ao anexar...

  

         Desde ja agradeço

         André

andre_tonini
Creator II
Creator II
Author

César, consegui tratar para algumas contas porém aproveitei essa dica para tratar uma análise dos estoques.

Valeu...

rogerioqv
Creator II
Creator II

André,

A carga é igual a sua, mudei apenas algumas expressões... estou postando abaixo:

SALDOANTERIOR:

if(isnull(Above(VALOR_ENTRADA - VALOR_SAIDA)), 0,Above(Column(1) + Column(2) - Column(3)))

SALDOFINAL:

Column(1) + Column(2) - Column(3)

A tabela ficou igual a imagem em anexo. Veja se lhe ajuda.

Abraços.