Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Lucasrw1
Contributor II
Contributor II

Códigos ativos em datas retroativas

Boa tarde pessoal, 

Gostaria de ajuda de vocês para identificar a melhor forma de fazer uma busca de quais códigos estavam ativos em determinada data. 

Suponho que queira analisar os códigos ativos na data 31/08/2002. 

A regra que entendo que seja a correta seria: 

- Adesão for menor que a data de análise (31/08/2002)
- (Exclusão is null or Exclusão > data de análise (31/08/2002))

Sendo assim tenho os seguintes dados de exemplo: 

Código Adesão Exclusão
2679273 05/11/2007 null
2621160 18/12/2002 13/06/2005
2621194 18/12/2002 13/06/2005
2621216 18/12/2002 13/06/2005
2620848 05/12/2002 11/06/2010
2620775 04/12/2002 18/11/2003
2620821 27/11/2002 15/12/2005
2620805 26/11/2002 null
2619670 04/11/2002 null
2619700 04/11/2002 null
2619653 22/10/2002 23/01/2003
2618266 29/08/2002 null
2616999 01/08/2002 15/01/2019
2617030 01/08/2002 20/08/2002
2617057 05/08/2002 12/09/2016
2617073 01/08/2002 10/11/2004
2617081 10/08/2002 10/11/2004
2617103 01/08/2002 10/11/2004
2615003 10/07/2002 null

 

Os códigos em negrito se enquadram na regra, sendo assim teria 7 códigos ativos até a data de 31/08/2002. 

se fosse construir isso em sql, ficaria mais ou menos assim: 

where
to_date(Adesão)<= to_date('31/08/2021')
and (Exclusão is null or to_date(Exclusão)> to_date('31/08/2021') )

Como eu poderia escrever isso em um set Analysis? 

 

Desde já, grato pela atenção 

1 Solution

Accepted Solutions
decodesolucoes
Contributor II
Contributor II

Bom dia Lucas,

Tenta assim:

If(Adesão<='31/08/2021' and (IsNull(Exclusão) or Exclusão >= '31/08/2021'),Código,Null())

Desta forma, se você colocar isso numa tabela por exemplo, ele vai trazer os Códigos que se encaixam na condição, e os outros que não se encaixarem serão nulos, aí é só você desmarcar a opção Incluir Nulos.

View solution in original post

2 Replies
decodesolucoes
Contributor II
Contributor II

Bom dia Lucas,

Tenta assim:

If(Adesão<='31/08/2021' and (IsNull(Exclusão) or Exclusão >= '31/08/2021'),Código,Null())

Desta forma, se você colocar isso numa tabela por exemplo, ele vai trazer os Códigos que se encaixam na condição, e os outros que não se encaixarem serão nulos, aí é só você desmarcar a opção Incluir Nulos.

Lucasrw1
Contributor II
Contributor II
Author

Bom dia @decodesolucoes, com if acredito ser mais fácil mesmo, consegui resolver desta forma. Eu gostaria de fazer com Set Analisys, mas não vou complicar hehe , obrigado!