Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
mbrenzan
Contributor III
Contributor III

IF com Aggr não trazendo valor dos campos

Pessoal,

Estou com um problema estranho. Utilizo a seguinte expressão:

IF(%NR_SEQ_RETORNO=Aggr(Min(%NR_SEQ_RETORNO),%NR_INTERNO_CONTA),IF(DS_CONVENIO.CONTA_PACIENTE='Unimed',VL_AMENOR.CONVENIO_RETORNO_ITEM,VL_GLOSADO.CONVENIO_RETORNO_ITEM))

Porém o resultado é null tanto para verdadeiro quanto para falso, mas existem valores nestes campos. Utilizando a mesma expressão (abaixo) para verificar se cai em Verdadeiro ou Falso é possível verificar que retornam os valores.

IF(%NR_SEQ_RETORNO=Aggr(Min(%NR_SEQ_RETORNO),%NR_INTERNO_CONTA),IF(DS_CONVENIO.CONTA_PACIENTE='Unimed','VERDADEIRO','FALSO'))

Gostaria de saber se alguém já passou por isso ou se sabem onde estou errando.

 

Coordenador de BI - Hospital Santa Casa de Maringá
4 Replies
Thiago_Justen_

Teste com:

Sum({<DS_CONVENIO.CONTA_PACIENTE={'Unimed'}>}Aggr(If(%NR_SEQ_RETORNO=Min(total <%NR_INTERNO_CONTA> %NR_SEQ_RETORNO),VL_AMENOR.CONVENIO_RETORNO_ITEM,VL_GLOSADO.CONVENIO_RETORNO_ITEM),%NR_INTERNO_CONTA))

 

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

Deu "//Erro na dimensão calculada"...

Coordenador de BI - Hospital Santa Casa de Maringá
Thiago_Justen_

Pode experimentar a expressão como medida e me dizer o resultado?

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

Thiago, apliquei sua expressão na íntegra e o retorno foi o erro citado acima conforme o exemplo que segue:

image.png

Acrescentando mais detalhes, o registro é formado por "Atendimento", "Conta" e "Seq. do Retorno". Um Atendimento tem uma ou várias Contas e cada Conta tem uma ou várias Sequencias de Retorno.
O que precisa ser feito é, a partir de uma lista, comparar todos os Número de Sequencia da mesma conta e trazer o valor (Glosado ou a Menor, dependendo do convênio) apenas para a Menor Sequencia de Retorno, devendo ficar mais ou menos assim:


image.png

Então trata-se de uma tabela onde a expressão vai alimentar o valor de uma coluna. Utilizei a expressão
IF(%NR_SEQ_RETORNO=$(=Min(%NR_SEQ_RETORNO),IF(DS_CONVENIO.CONTA_PACIENTE='Unimed',VL_AMENOR.CONVENIO_RETORNO_ITEM,VL_GLOSADO.CONVENIO_RETORNO_ITEM)) e deu certo em partes, pois o Min traz sempre o menor valor da lista, buscando a mesma sequencia para comparar com todos os registros, contudo no caso onde a condição satisfaz ele traz o valor, conforme o exemplo:

image.png

Para a expressão IF(%NR_SEQ_RETORNO=Aggr(Min(%NR_SEQ_RETORNO),%NR_INTERNO_CONTA),IF(DS_CONVENIO.CONTA_PACIENTE='Unimed',VL_AMENOR.CONVENIO_RETORNO_ITEM,VL_GLOSADO.CONVENIO_RETORNO_ITEM)) o comportamento tem sido assim:

image.png

 O estranho e alvo do meu questionamento aqui é que se utilizar a mesma expressão acima e substituir os campo "VL_AMENOR.CONVENIO_RETORNO_ITEM" e "VL_GLOSADO.CONVENIO_RETORNO_ITEM" pelas strings "VALOR_1" e "VALOR_2" respectivamente, conforme abaixo, ele consegue analisar corretamente e trazer a string no campo.

IF(%NR_SEQ_RETORNO=Aggr(Min(%NR_SEQ_RETORNO),%NR_INTERNO_CONTA),IF(DS_CONVENIO.CONTA_PACIENTE='Unimed','VALOR_1','VALOR_2'))

image.png

Incluí a coluna Convênio pra representar a validação do segundo IF.

Coordenador de BI - Hospital Santa Casa de Maringá