Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
karczevski
Contributor III
Contributor III

Set Analysis com Interval

Preciso contar o numero de chamados com prioridade 0 e que o tempo de inicio de atendimento seja menor que 15 minutos, atualmente estou fazendo o seguinte, porem, sem sucesso:

=Count({<Chamado.Prioridade={'0'},

(

Interval(

Timestamp(Min({<Acoes.Ação-={'Abertura'}>} Acoes.DATAHR))

-

Timestamp(Max({<Acoes.Ação={'Abertura'}>} Acoes.DATAHR)))

)>={'00:15:00'}

>}Chamado.Número)

Posteriormente farei o mesmo com as demais prioridades.

Labels (4)
1 Solution

Accepted Solutions
Thiago_Justen_

Você não precisa da tabela temp. O order by pode ocorrer no load do qvd.

From seu_qvd order by %idchamado;


Fato bem lembrado...my fault fernando.tonial‌.

Rafael,

Complete seu resident assim:

ChamadoTemp:

Load

*,   If(%IdChamado=Previous(%IdChamado) and Acoes.Ação<>Previous(Acoes.Ação),Interval(Acoes.DATAHR-Previous(Acoes.DATAHR)),Time(0)) as Intervalo_Chamado

Resident Chamado Order By %IdChamado;

Drop table Chamado;

Rename table ChamadoTemp to Chamado;

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

11 Replies
Thiago_Justen_

Rafael,

Não seria mais interessante criar um campo com o intervalo entre as ações de cada  chamado no script?

Por exemplo:

Sua_Tabela:

Load

    Outros_Campos,

    If(Chamado.Número=Previous(Chamado.Número) and Acoes.Ação<>Previous(Acoes.Ação),Interval(Acoes.DATAHR-Previou(Acoes.DATAHR)),Time(0)) as Intervalo_Chamado

Resident Sua_Tabela_Temp Order By Chamado.Número;

Daí na tela eu faria a seguinte medida:

Count({<Intervalo_Chamado={">=00:15"},Chamado.Prioridade={0},Acoes.Ação={'Abertura'}>}Chamado.Número)


Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
karczevski
Contributor III
Contributor III
Author

Opa, gostei da ideia, e começei a usar, acabei que mudei um pouco para funcionar aqui, fiz o seguinte:

No script:

If(%IdChamado=Previous(%IdChamado) and Acoes.Ação<>Previous(Acoes.Ação),Interval(Acoes.DATAHR-Previous(Acoes.DATAHR)),Time(0)) as Intervalo_Chamado,

Essa Parte ja retornou nulo.

Coloquei no objeto de texto o count que vc me passou, porem o mesmo não funcionara ja que o intervalo não funcionou tambem.

Desde já,

Obrigado pela ajuda

Thiago_Justen_

O importante aí pro if funcionar é aplicar o order by %IdChamado. Do contrário vai dar errado mesmo.

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
karczevski
Contributor III
Contributor III
Author

Fiz o Seguinte:

ChamadoTemp:

Load

    If(%IdChamado=Previous(%IdChamado) and Acoes.Ação<>Previous(Acoes.Ação),Interval(Acoes.DATAHR-Previous(Acoes.DATAHR)),Time(0)) as Intervalo_Chamado

Resident Chamado Order By %IdChamado;

Ainda sem sucesso kk

Thiago_Justen_

Você não precisa da tabela temp. O order by pode ocorrer no load do qvd.

From seu_qvd order by %idchamado;


Fato bem lembrado...my fault fernando.tonial‌.

Rafael,

Complete seu resident assim:

ChamadoTemp:

Load

*,   If(%IdChamado=Previous(%IdChamado) and Acoes.Ação<>Previous(Acoes.Ação),Interval(Acoes.DATAHR-Previous(Acoes.DATAHR)),Time(0)) as Intervalo_Chamado

Resident Chamado Order By %IdChamado;

Drop table Chamado;

Rename table ChamadoTemp to Chamado;

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
fernando_tonial
Partner - Specialist
Partner - Specialist

Pessoal,

Só lembrando que o Order By no Qlik só funciona em tabela resident.

Lendo direto do aquivo QVD vai dar erro.

Abraços.

Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.
karczevski
Contributor III
Contributor III
Author

Deu certo, porem gerou 5 Intervalos, tentei usar o Max e o Min, porem ele pega os valores errados.

Thiago_Justen_

Isso porque, pra cada linha com o mesmo id há um intervalo. Talvez isso seja interessante:

Max_Min_Chamado:

Load

        %IdChamado,

        Interval(Max_DataHr-Min_DataHr) as Intervalo_Total;

Load

         %IdChamado,

          Min(Acoes.DATAHR) as Min_DataHr,

          Max(Acoes.DATAHR) as Max_DataHr

Resident Chamado group By %IdChamado;

Mas se isso não te servir me avise que tentarei te ajudar.

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
karczevski
Contributor III
Contributor III
Author

Consegui, agora meu problema se tornou a prioridade.