Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
joao_sp_campina
Creator II
Creator II

Max data por Unidade

Bom  dia Pessoal,

Preciso de uma ajuda com relação a ultima data de atualização de status de um formulário de vistoria. Preciso sempre considerar em minha tabela dinâmica a data mais atual de cada unidade vistoriada. Ou seja, sempre considerar a ultima data de cada unidade.

Exemplo:

Unidade         Status               Data de atualização

   100                Reprovada            02/05/2013

   200                Reprovada            02/05/2013

   300                Aprovada              02/05/2013

   100                Aprovada              20/05/2013

   400                Reprovada            20/05/2013

No exemplo acima, vocês poderão observar que a unidade 100 agora está aprovada  em 20/05/2013, considero sempre esta data como atualizada e não devo mais considerar a data de reprovação 02/05/2013. Porem a unidade 200 continua reprovada. No meu relatório deve aparecer assim:

Unidade            Status                   Data de atualização

100                  Aprovada                20/05/2013

200                  Reprovada              02/05/2014

300                  Aprovada                02/05/2014

400                  Reprovada              20/05/2014

Neste caso na minha ultima vistoria dia 20/05 devo considerar esta situação. Caso eu quiser mostrar só as Reprovadas, devo considerar apenas uma vez a unidade 100 em 20/05/2013 e não mais  pegar ela como Reprovada em 02/05. E a unidade 200 deve aparecer, pois ainda não foi aprovada.

Sempre devo considerar  a máxima data de cada unidade.

Já tentei resolver isto por agregação via expressão mas não funcionou.

Alguém tem uma idéia de como resolver isto de uma maneira mais fácil.

Obrigado pela atenção de todos

João Carlos Ferreira

1 Solution

Accepted Solutions
Anonymous
Not applicable

Oi, João.

Acho que o jeito mais fácil é você criar uma dimensão DATA_ULTIMA_VISTORIA no script e usá-la na tabela com a opção "Ocultar quando o valor for nulo" marcada. O script ficaria assim:

VISTORIA:

Load

     METRAGEM,

     METRAGEM_OUTROS,

     NUMERO_SALA,

     UNIDADE,

     EMPREENDIMENTO,

     STATUS_VISTORIA,

     DATA_GRAVAÇAO,

     DATA_MODIFICAÇAO,

     O_QUE_FOI_AVALIADO,

     CÔMODOS,

     ITENS,

     ITENS_COMODOS,

     ITENS_INFORMAÇOES

From VISTORIA.QVD (qvd);

Left Join (VISTORIA) Load

  UNIDADE,

  Date(Max(DATA_GRAVAÇAO)) as DATA_GRAVAÇAO,

  Date(Max(DATA_GRAVAÇAO)) as DATA_ULTIMA_VISTORIA

Resident VISTORIA

Group by UNIDADE;

Assim você não vai precisar usar AGGR nem Set Analysis com datas nas expressões. Anexo segue um QVW com a solução.

Bruno.

View solution in original post

8 Replies
rogerioqv
Creator II
Creator II

Joao,

Creio que você terá que utilizar o comando Firstsortedvalue... envie-me um qvw com esses dados que vou tentar conseguir para vc aqui a lógica.

Abraços.

joao_sp_campina
Creator II
Creator II
Author

Bom dia Rogério,

Segue o qvw com a massa de dados.

João Carlos Ferreira.

rogerioqv
Creator II
Creator II

João, podes enviar novamente, perdi o arquivo!!!

joao_sp_campina
Creator II
Creator II
Author

Bom dia Rogério,

Segue o qvw com a massa de dados.

João Carlos Ferreira.

Segue anexo.

aderlanrm
Partner - Specialist
Partner - Specialist

Boa noite João Carlos, tudo bem?

Veja o anexo, deixei três colunas e as lista para você entender o comportamento da função AGGR, também pode ver na ajuda F1 mais detalhes da função.

A primeira data é a que está na memória, a segunda é que responde a pergunta aqui e a terceira responde o que está escrito no objeto texto do QVW.

Não esqueça de marcar a opção "Oculta quanto o valor for nulo" nessas dimensões com as formulas.

Espero que seja útil, abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
rogerioqv
Creator II
Creator II

Muito boa a rotina...

Abraços.

Anonymous
Not applicable

Oi, João.

Acho que o jeito mais fácil é você criar uma dimensão DATA_ULTIMA_VISTORIA no script e usá-la na tabela com a opção "Ocultar quando o valor for nulo" marcada. O script ficaria assim:

VISTORIA:

Load

     METRAGEM,

     METRAGEM_OUTROS,

     NUMERO_SALA,

     UNIDADE,

     EMPREENDIMENTO,

     STATUS_VISTORIA,

     DATA_GRAVAÇAO,

     DATA_MODIFICAÇAO,

     O_QUE_FOI_AVALIADO,

     CÔMODOS,

     ITENS,

     ITENS_COMODOS,

     ITENS_INFORMAÇOES

From VISTORIA.QVD (qvd);

Left Join (VISTORIA) Load

  UNIDADE,

  Date(Max(DATA_GRAVAÇAO)) as DATA_GRAVAÇAO,

  Date(Max(DATA_GRAVAÇAO)) as DATA_ULTIMA_VISTORIA

Resident VISTORIA

Group by UNIDADE;

Assim você não vai precisar usar AGGR nem Set Analysis com datas nas expressões. Anexo segue um QVW com a solução.

Bruno.

joao_sp_campina
Creator II
Creator II
Author

Bruno,

Desculpe a demora em responder. Consegui fazer usando esta mesma ideia que você passou.

Obrigado pela ajuda.

Abrs