Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Pega Ultimo valor possível

Pessoa boa tarde ou bom dia

preciso fazer o seguinte

sum( DISTINCT [Movimento])

só que as veze so registro está vazio ( nao teve movimento) e eu preciso pegar movimento anterior como eu faço isso ?

Labels (2)
7 Replies
nicolett_yuri

Você deve estar utilizando isso em um gráfico certo?

Dê uma olhada na função Below(), essa função vai pegar o valor da linha acima. Caso esta não seja sua necessidade, forneça maiores detalhes de seus dados para podermos ajuda-lo melhor.

Not applicable
Author

É um grafico de Linha com eixo de dia, meu problema e no dia  1 por exemplo, teria que pegar do dia 30 do mes anterior

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa tarde Julio.

Nestes casos, muitas vezes eu prefiro gerar estas datas no script.

Claro que dependendo da quantidade de registros e dos dias entre estas datas, pode-se ter muitos registros adicionais, o que pode ter um "custo" alto (performance/consumo ram). Ai neste caso, trazer o peso para a expressão.....

Segue um exemplo de gerar estas datas faltantes.

Att,

AMF

furtado@farolbi.com.br
Not applicable
Author

Entendi mais ou menos como funciona isso alessandro,
No caso você cria com today (data de hoje) no caso para pegar o registro anteior da propria dimensão ai uso prevous ?

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Sim.

Mas no caso eu poderia colocar tanto o dia de hoje para as movimentações (por exemplo de estoque que seriam calculadas por um custo e este eu tenho do dia 1, então geraria ate o dia de hoje) ou mesmo deixar ate a data

    // Pega da data anterior ate a do registro

    if(Previous(Prod) = Prod,date#(Previous(Data)),Data)              as Data_Fim

    //A linha abaixo cria registros da ultima data ate o dia de hoje

    if(Previous(Prod) = Prod,date#(Previous(Data)),date(Today()))     as Data_Fim

Mas veja, esta rotina acima simplesmente me serve para dizer de quando ate quando.

A rotina abaixo é de "sabendo" de que data a data vai gerar.  Perceba que tem uma especie de loop dentro do mesmo registro ate que as datas de quando a quando sejam validas  (While + iterno()  ).

Final:

NoConcatenate

LOAD

   *

   ,date(Data_Ini + IterNo()-1) as Data_Nova

Resident Tmp

WHILE Data_Ini + IterNo()-1 <= Data_Fim;

AMF

furtado@farolbi.com.br
Not applicable
Author

Entendi  o primeiro vai gerar o valor que eu quero  (no caso o valor meu valor inicial por exemplo do dia 02 , ja que nao tenho dia 1) e o segundo vai criar a Data

Clever_Anjos
Employee
Employee

Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada

Have fun, be Qlik