Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
pedroivo
Creator
Creator

Duvida de set analisys - Considerar quantidades que estejam em um intervalo de tempo

Olá,

estou uma dificuldade no seguinte Set analisys:

a penultima coluna do gráfico tipo tabela é um set analisys abaixo:

Count({$<

        [AGR TIPO ATENDIMENTO]={'Internação'},

        [AGR CLASSIFICACAO ATENDIMENTO]={'Clínica'},

        [STATUS DO PROCESSO] -= {'2','7'},

        [CODIGO DA GLOSA] = {0} >}

        [AGR QUANTIDADE])

A ultima coluna é outro set analisys que tem o mesmo proposito  mas foi incluido a condição IF para considerar quantidades dentro de determinadas datas, quando estou fazendo isso o count esta se perdendo e gera um valor muito grande.

Obs:

os campos [12 MESES DA DATA MAIS ANTIGA] , [DATA MAIS ANTIGA] são dimensões criadas no script de carga.

          [DATA MAIS ANTIGA] = 30/12/2016

          [12 MESES DA DATA MAIS ANTIGA] = 30/12/2015

Sum({$<

        [AGR TIPO ATENDIMENTO]={'Internação'},

[AGR CLASSIFICACAO ATENDIMENTO]={'Clínica'},

        [STATUS DO PROCESSO] -= {'2','7'}, [CODIGO DA GLOSA] = {0}

>}

If(([DATA DO AVISO]>=[12 MESES DA DATA MAIS ANTIGA] AND [DATA DO AVISO]<=[DATA MAIS ANTIGA]),[AGR QUANTIDADE],0))

Abaixo um print da tabela que estou gerando com valores de quantidades distorcidos usando a condição IF.

A penultima coluna apresnetou a quantidade 4 porque fiz alguns filtros para chegar nessa quantidade, a última coluna deveria apresentar a mesma quantidade mas sem filtros de usuário, somente baseado no set analisys definido.

set analisys.png

7 Replies
nicolett_yuri

Esses campos estão na mesma tabela? [DATA DO AVISO], [12 MESES DA DATA MAIS ANTIGA] e [DATA MAIS ANTIGA]?


Se sim, crie essa condicional em seu script, fornecendo uma coluna com o FLAG (0 ou 1) para a sua regra, desta forma você pode setar esse flag em seu set analysis.


pedroivo
Creator
Creator
Author

Criei uma tabela chamada PERIODO com uma linha com os campos:

[3 MESES DA DATA MAIS ANTIGA],[6 MESES DA DATA MAIS ANTIGA], [12 MESES DA DATA MAIS ANTIGA], [DATA MAIS ANTIGA]


Ai a tabela ficou assim:

[DATA MAIS ANTIGA] = 30/12/2016

[3 MESES DA DATA MAIS ANTIGA]=30/09/2016

[6 MESES DA DATA MAIS ANTIGA]=30/06/2016

[12 MESES DA DATA MAIS ANTIGA]=30/12/2015


O campo [DATA DO AVISO] faz parte da tabela onde estão os registros com os movimentos que preciso verificar se estão dentro do perído que eu quero.




JacksonAlfonso
Creator
Creator

Já tentou o Setanalysis assim :

Sum({$<

        [AGR TIPO ATENDIMENTO]={'Internação'},

[AGR CLASSIFICACAO ATENDIMENTO]={'Clínica'},

        [STATUS DO PROCESSO] -= {'2','7'}, [CODIGO DA GLOSA] = {0},

[DATA DO AVISO]={"=[DATA DO AVISO]>=[12 MESES DA DATA MAIS ANTIGA] <=[DATA MAIS ANTIGA]"}

>} [AGR QUANTIDADE])

JacksonAlfonso
Creator
Creator

Apesar de que, resolver na carga é mais performático com certeza, e seria uma boa prática.

thiago_mlg
Creator II
Creator II

Pedro, bom dia.

Tente assim: tire o if da sua expressão e coloque o filtro de data dentro do próprio set analysis.

DATA_REFERENCIA = {'>=$(=[12 MESES DA DATA MAIS ANTIGA]) <=$(=[DATA MAIS ANTIGA])'}

Sum({$<

        [AGR TIPO ATENDIMENTO]={'Internação'},

[AGR CLASSIFICACAO ATENDIMENTO]={'Clínica'},

        [STATUS DO PROCESSO] -= {'2','7'}, [CODIGO DA GLOSA] = {0},

[DATA DO AVISO] = {'>=$(=[12 MESES DA DATA MAIS ANTIGA]) <=$(=[DATA MAIS ANTIGA])'}

>}

[AGR QUANTIDADE])

Espero ter ajudado.

Abraços

pedroivo
Creator
Creator
Author

Caro Jackson

testei sua sugestão e não funcionou, sintaxe não acusou erro, mas esta retornando zero.

pedroivo
Creator
Creator
Author

Caro Thiago

testei sua sugestão e funcionou!

Obrigado pela sua ajuda.