Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
leo_jurado
Contributor II
Contributor II

Local adequado do AGGR

Pessoal, bom dia!

Estou quebrando a cabeça tentando encaixar o AGGR juntamente ao Set Analysis definindo um ano. O objetivo final é o crescimento em %, não estou conseguindo encaixar o AGGR para ele aplicar o cálculo ano a ano. Segue o código:

(sum(USU_VLRPARC01)
/
(
Num(sum({<TKT_TIPO={'Venda'}, Ano={'$(=Max(Ano))'} >} VlrFaturadoLiquido )
-fabs(sum({<TKT_TIPO={'Devolucao'}, Ano={'$(=Max(Ano))'} >} TKT_VLR_MERCADORIA_VENDA )
-sum({<TKT_TIPO={'Venda'}, Ano={'$(=Max(Ano))'} >} VlrST )
+sum({<TKT_TIPO={'Devolucao'}, Ano={'$(=Max(Ano))'} >} VlrST )
), '#.##0')))
/
(sum(USU_VLRPARC01)
/
(
Num(sum({<TKT_TIPO={'Venda'}, Ano={'$(=Max(Ano)-1)'} >} VlrFaturadoLiquido )
-fabs(sum({<TKT_TIPO={'Devolucao'}, Ano={'$(=Max(Ano)-1)'} >} TKT_VLR_MERCADORIA_VENDA )
-sum({<TKT_TIPO={'Venda'}, Ano={'$(=Max(Ano)-1)'} >} VlrST )
+sum({<TKT_TIPO={'Devolucao'}, Ano={'$(=Max(Ano)-1)'} >} VlrST )
), '#.##0')))-1

Deste jeito, ele retorna o resultado apenas no ano de 2019, o que é lógico com base no código. No entanto, aplicando o AGGR ele ou não retorna nada ou "ignora" e continua trazendo sobre o ano de 2019.

ANO DA TABELA:
2018
2019
2020

Como ficaria o código para o resultado ser aplicado em todos os anos da tabela? Tentei utilizar o AGGR de infinitas formas.

Desde já, muito obrigado 😃

1 Solution

Accepted Solutions
RafaMartins
Creator II
Creator II

Bom dia, se está querendo exibir isto em uma tabela onde a dimensão seja o ano, você pode usar a função above, essa função fara o calculo do valor do máximo da dimensão pelo valor anterior a ele.

(sum(USU_VLRPARC01)
/
(
Num(sum({<TKT_TIPO={'Venda'}>} VlrFaturadoLiquido )
-fabs(sum({<TKT_TIPO={'Devolucao'}>} TKT_VLR_MERCADORIA_VENDA )
-sum({<TKT_TIPO={'Venda'} >} VlrST )
+sum({<TKT_TIPO={'Devolucao'} >} VlrST )
), '#.##0'))

/

Above((sum(USU_VLRPARC01)
/
(
Num(sum({<TKT_TIPO={'Venda'}>} VlrFaturadoLiquido )
-fabs(sum({<TKT_TIPO={'Devolucao'}>} TKT_VLR_MERCADORIA_VENDA )
-sum({<TKT_TIPO={'Venda'} >} VlrST )
+sum({<TKT_TIPO={'Devolucao'} >} VlrST )
), '#.##0')),1)

View solution in original post

3 Replies
RafaMartins
Creator II
Creator II

Bom dia, se está querendo exibir isto em uma tabela onde a dimensão seja o ano, você pode usar a função above, essa função fara o calculo do valor do máximo da dimensão pelo valor anterior a ele.

(sum(USU_VLRPARC01)
/
(
Num(sum({<TKT_TIPO={'Venda'}>} VlrFaturadoLiquido )
-fabs(sum({<TKT_TIPO={'Devolucao'}>} TKT_VLR_MERCADORIA_VENDA )
-sum({<TKT_TIPO={'Venda'} >} VlrST )
+sum({<TKT_TIPO={'Devolucao'} >} VlrST )
), '#.##0'))

/

Above((sum(USU_VLRPARC01)
/
(
Num(sum({<TKT_TIPO={'Venda'}>} VlrFaturadoLiquido )
-fabs(sum({<TKT_TIPO={'Devolucao'}>} TKT_VLR_MERCADORIA_VENDA )
-sum({<TKT_TIPO={'Venda'} >} VlrST )
+sum({<TKT_TIPO={'Devolucao'} >} VlrST )
), '#.##0')),1)

leo_jurado
Contributor II
Contributor II
Author

Sensacional!

Eu a usei uma vez e não me lembrava, olha que fiquei um bocado de tempo em! Rsrsrs. Muitíssimo obrigado!!

Ainda fico um pouco intrigado quanto a utilização do AGGR neste caso, só pra aprendizado mesmo, saber se encaixaria ou não.

RafaMartins
Creator II
Creator II

Pelo que entendo, a função aggr cria uma tabela in memory, ou seja ela ira pega os dados que estão sendo usados na expressão e criar uma tabela virtual, como as tabelas do seu modelo de dados.

Não sei como ela poderia ser aplicada nesse caso pois nunca a utilizei de tal forma.