Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
andre_tonini
Creator II
Creator II

Comparando Valores Anteriores

Pessoal,

          Estou analisando a evolução dos preços de compra por período, mas preciso que na expressão faça um comparativo com a última data que houve momento.

          Abaixo segue exemplo, caso alguem tenha uma dica para me ajudar.

11.jpg

Att,

André Tonini

Labels (1)
1 Solution

Accepted Solutions
offjunior
Creator
Creator

Boa tarde André!

Veja se o arquivo anexo te ajuda.

Fiz um pequeno exemplo para mostrar a função de set analysis ABOVE.

Acho que faz oque você precisa.

Abraço!

View solution in original post

11 Replies
luizclaudio
Creator
Creator

André

Acredito que voce pode utilizar a função PEEK() para fazer isso.

Esta função pega o valor do registro anterior.

peek(nomedocampo [, linha [ , nomedatabela ] ] )

Retorna o conteúdo do nomedocampo no registro especificado por linha na tabela interna nomedatabela. Os dados são lidos da base de dados associada do QlikView.

O nomedocampo deve ser fornecido como string (por exemplo, um literal entre aspas).

Linha deve ser um inteiro. 0 indica o primeiro registro, 1 indica o segundo e assim por diante. Os números negativos indicam a ordem a partir do final da tabela. -1 indica o último registro lido.

Se nenhuma linha for definida, -1 será assumido.

Nomedatabela é um rótulo de tabela, consulte Rótulos da Tabela, sem os dois-pontos finais. Se nenhum nomedatabela for definido, a tabela atual será assumida. Se usado fora do comando load ou em referência a outra tabela, o nomedatabela deve ser incluído

Exemplos:

peek( 'Vendas' )
retorna o valor de Vendas na leitura do registro anterior (equivale a previous(Vendas)).

peek( 'Vendas', 2 )
retorna o valor de Vendas a partir do terceiro registro lido na tabela interna atual.

peek( 'Vendas', -2 )
retorna o valor de Vendas a partir do segundo registro lido na tabela interna atual.

peek( 'Vendas', 0, Tab1 )
retorna o valor de Vendas a partir do primeiro registro lido na tabela de entrada Tab1.

Load A, B, numsum( B, peek( 'Bsum' ) ) as Bsum...;
cria um acumulado de B em Bsum.

Luiz Cláudio

offjunior
Creator
Creator

Boa tarde André!

Veja se o arquivo anexo te ajuda.

Fiz um pequeno exemplo para mostrar a função de set analysis ABOVE.

Acho que faz oque você precisa.

Abraço!

andre_tonini
Creator II
Creator II
Author

Bom dia Normélio,

        Muito obrigado era isso mesmo o que Eu precisava.

        Porém existe algum meio de trazer no gráfico apenas os produtos que sofreram variação do preço em determinado período? Caso sim se isso posso tratar na expressão?

        Exemplo:

       11.jpg

Abraço

André Tonini

lucianosv
Specialist
Specialist

Bom dia.

Você pode colocar no set analysis a condição preço diferente do above(preço) também.

offjunior
Creator
Creator

Bom dia André!

Primeiramente que bom que a comunidade pode lhe ajudar.

Estou lhe enviando mais um exemplo, agora com seu segundo pedido, sobre não mostrar quando não haver alterações no custo do produto. Eu fiz um controle para você escolher se quer ou não mostrar quando não haver alterações no custo. Caso não queira ficar com o controle, é só isolar um parte do código que estou lhe enviando, assim sempre ficará invisível quando o custo não sofrer alterações.

Estou a disposição.

Abraço!

andre_tonini
Creator II
Creator II
Author

Olá Normélio,

        Não estou conseguindo abrir o arquivo, você tem condição de disponibilizar o script ou expressão?

Att,

André Tonini

offjunior
Creator
Creator

Boa tarde André!

Adicione esse LOAD ao Script já existente:

CON_CONTROLES:

LOAD * Inline

[

CON_CONTROLE,  CON_ID,  CON_NOME

VAR_CUSTO,      1,        MOSTRA SEM VARIAÇÃO NO CUSTO

VAR_CUSTO,      2,        NÃO MOSTRA SEM VARIAÇÃO NO CUSTO

];

Na expressão VLR CUSTO Substitua oque tem nela por isso:

//usando o controle de apresentação

IF(MAX(CON_ID) = 1,

   SUM(CUS_VLR_CUSTO),

   IF(SUM(CUS_VLR_CUSTO) - ABOVE(SUM(CUS_VLR_CUSTO)) <> 0,

      SUM(CUS_VLR_CUSTO)

     )

  )

//não usando o controle de apresentação

//IF(SUM(CUS_VLR_CUSTO) - ABOVE(SUM(CUS_VLR_CUSTO)) <> 0,

//   SUM(CUS_VLR_CUSTO)

//  )

Ai eu criei um objeto de tela para poder escolher entre mostrar ou não custos que não tiveram variação, a tela ficou assim:

Sem título.jpg

Abraço!

andre_tonini
Creator II
Creator II
Author

Normélio, boa tarde,

            Segui os passos como descreveu acima, inclusive está muito bem explicado como proceder, porém não sei se tem algo errado com o meu cenário, pois se Eu filtrar por produto ele não gera os valores da variação.

            Anexo segue o meu qvw, caso possa me ajudar desde já agradeço.

            (obs: se tiver algo de errado com o script ou expressão se puder colar as telas como fez agora a pouco, lhe agradeço)

att,

André Tonini

offjunior
Creator
Creator

Boa tarde!

Acho que oque você precisa está tudo no desenho abaixo.

Sem título.jpg