Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
brunoducatti
Creator
Creator

Carregar saldo anterior no script

Bom dia!

Tenho uma tabela de saldos com o ano-mês e preciso carregar em uma nova tabela no script o saldo do mês anterior.

Ex:

Tabela:

Saldo.

(

anomes,

saldoatual)

A partir desta tabela quero criar uma nova que seria:

Saldo_Final

(

anomes,

saldoatual,

saldomesanterior)

Tenho por exemplo 2 registros na tabela Saldo:

anomes: 2015-01 - 2015-02

saldoatual: 100,00   -   200,00

Na nova tabela teria que ficar:

anomes: 2015-01 - 2015-02

saldoatual: 100,00   -   200,00

saldoamesanterior 0,00      -    100,00

 

Obrigado,

Bruno

1 Solution

Accepted Solutions
fernando_tonial
Employee
Employee

Olá Bruno,

Pode fazer assim:

Dados:

LOAD

  Mes,

  SaldoMes,

  RangeSum(SaldoMes, Peek('SaldoMesAtual')) As SaldoMesAtual,

  If(RecNo()=1,0, Peek('SaldoMes')) As SaldoMesAnterior INLINE [

    Mes, SaldoMes

    201501, 100

    201502, 80

    201503, 20

    201504, 200

    201505, 150

];

Drop Field SaldoMes;

Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.

View solution in original post

5 Replies
fernando_tonial
Employee
Employee

Olá Bruno,

Pode fazer assim:

Dados:

LOAD

  Mes,

  SaldoMes,

  RangeSum(SaldoMes, Peek('SaldoMesAtual')) As SaldoMesAtual,

  If(RecNo()=1,0, Peek('SaldoMes')) As SaldoMesAnterior INLINE [

    Mes, SaldoMes

    201501, 100

    201502, 80

    201503, 20

    201504, 200

    201505, 150

];

Drop Field SaldoMes;

Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.
brunoducatti
Creator
Creator
Author

Caro Tonial, primeiramente agradeço pela ajuda.

Sua resposta praticamente resolveu meu problema, só tenho uma outra dúvida.

Considerando este seu exemplo, se eu quisesse gerar para o mes 201506 o SaldoMesAnterior, mesmo não tendo ainda registro no mês 201506, é possível fazer?

Ou seja, iria inserir via script um registro para 201506 e neste caso só teria valor o campo SaldoMesAnterior, visto que ainda não existe o SaldoMes para ela.

Um abraço!

brunoducatti
Creator
Creator
Author

Vou tentar explicar melhor porque acho que não expliquei bem.

Tenho uma tabela de vendas.

Tenho uma tabela de saldos da contabilidade.

A tabela de saldos da contabilidade possui aquela estrutura que eu tinha comentado (mes, saldoatual).

A tabela de vendas eu tenho o mes e campos de vendas.

Quero trazer para a tabela de vendas o saldoatual do mês anterior como saldomesanterior.

Em maio tenho vendas, ou seja, tenho registros para o ano-mês 2015-05 nela. Já na tabela de saldos, não tenho registros pois só serão gerados ao final do mês. Eu preciso trazer para a tabela de vendas (2015-05), o saldoatual referente a 2015-04 que será o saldomesanterior, porém, eu não tenho registros em 2015-05 para a tabela de saldos.

Confuso? rs.

Obrigado.

brunoducatti
Creator
Creator
Author

Eu tentei fazer da seguinte forma, mas não deu certo:

ResumoCusto:

LOAD

filial,

mestransa,

anotransa,

sum(valorlancto_mo) *-1 as saldoatual

resident CustoMO

group by filial, mestransa, anotransa;

VendasFinal: 

LOAD  

*

resident Vendas;

 

Left Join (VendasFinal)

Load

filial,

mestransa,

anotransa,

If(RecNo()=1,0, Peek('saldoatual')) As saldoanterior

resident ResumoCusto;

drop table ResumoCusto; 

drop table Vendas;

Minha tabela Vendas, tem o mestransa e anotransa (que seriam o ano-mês) e dados de NF (tipo número, série, data NF) e nela quero trazer o saldo da contabilidade do mês anterior ao anotransa e mestransa.

brunoducatti
Creator
Creator
Author

Consegui terminar, obrigado pela ajuda.