Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
pamelavianna
Explorer
Explorer

Valor de uma dimensão selecionada diferente dos valores sem nenhuma dimensão selecionada

Pessoal, bom dia!

Preciso de um help...

Tenho essa tabela simples onde calculo a quantidade de clientes que abriram o email e quantos clientes compraram num período de 7 dias após a data de envio.


Minha expressão está assim:

Count({<VENDA_DATA_VENDA={">=$(=Date(EMAIL_DATA_ENVIO)) <$(=Date(EMAIL_DATA_LIMITE_COMPRA))"},Email-={}, VENDA_VALOR_LIQUIDO_VENDA-={}>}DISTINCT %ID_CLIENTE)


Quando eu coloco todos os emails o resultado dessa expressão é zero.

zero.PNG



Quando eu seleciono apenas 1 email, ele me mostra o valor correto.

valor.PNG

Já testei também as seguintes expressões em sem sucesso.

  • count(AGGR(Count({<VENDA_DATA_VENDA={">=$(=Date(EMAIL_DATA_ENVIO)) <$(=Date(EMAIL_DATA_LIMITE_COMPRA))"}>}DISTINCT %ID_CLIENTE), COD_EMAIL, %ID_CLIENTE))


  • count(AGGR(Count({<VENDA_DATA_VENDA={">=$(vDataEnvio) <=$(vDataLimiteCompra)"},Email-={}, VENDA_VALOR_LIQUIDO_VENDA-={}>}DISTINCT %ID_CLIENTE),COD_EMAIL, %ID_CLIENTE))



Alguém pode me ajudar?

Obrigada!

Labels (2)
1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Oi Pamela.

Como prometido!

Acabei fazendo até duas opções pelo que vi no modelo de dados.

OP1

Count({<VENDA_DATA_VENDA={">=$(=Date(Max(EMAIL_DATA_ENVIO))) <=$(=Date(Max(EMAIL_DATA_ENVIO+7)))"}>} PEDIDO_NUM)

OP2

Count({<VENDA_DATA_VENDA={">=$(=Date(Max(EMAIL_DATA_ENVIO))) <=$(=Date(Max(EMAIL_DATA_LIMITE_COMPRA)))"}>} PEDIDO_NUM)

Importante: Nuca, jamais, de jeito maneira conte um campo chave, campo chave deve única e exclusivamente ligar dados, nunca use no layout, nem para testes.

Sabendo disso, observe que o SA está verificando se a data da venda está entre a maior data de envio e a maior data e envio mais sete (ou data limite da compra. )

Abraço.

*** Se foi útil ou correto, lembre de marcar o post ***

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (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)

View solution in original post

5 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Pamela,

No SA, DATE pode retornar vários valores, então vai dar problema, precisa usar Max, Min ou algo que faca retornar apenas um valor a ser valido no SA.

Por isso o comportamento diferente quando faz seleção.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (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)
pamelavianna
Explorer
Explorer
Author

Olá, Aderlan!

Como eu preciso contar a quantidade de clientes que compraram naquele intervalo de data (que passei no SA), creio que não seja possível usar funções como min ou max, já que eu preciso do intervalo de 7 dias e não apenas de 1 dia.

Alguma outra alternativa?

aderlanrm
Partner - Specialist
Partner - Specialist

Sim, usa Max(Data,7), por exemplo.

Ou >= e <= para pegar o intervalo que precisa.

Estou no celular, chegando no computador faço um exemplo para você, mas tenho certeza que vai conseguir primeiro do que eu. Rsrsrs...

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (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)
aderlanrm
Partner - Specialist
Partner - Specialist

Oi Pamela.

Como prometido!

Acabei fazendo até duas opções pelo que vi no modelo de dados.

OP1

Count({<VENDA_DATA_VENDA={">=$(=Date(Max(EMAIL_DATA_ENVIO))) <=$(=Date(Max(EMAIL_DATA_ENVIO+7)))"}>} PEDIDO_NUM)

OP2

Count({<VENDA_DATA_VENDA={">=$(=Date(Max(EMAIL_DATA_ENVIO))) <=$(=Date(Max(EMAIL_DATA_LIMITE_COMPRA)))"}>} PEDIDO_NUM)

Importante: Nuca, jamais, de jeito maneira conte um campo chave, campo chave deve única e exclusivamente ligar dados, nunca use no layout, nem para testes.

Sabendo disso, observe que o SA está verificando se a data da venda está entre a maior data de envio e a maior data e envio mais sete (ou data limite da compra. )

Abraço.

*** Se foi útil ou correto, lembre de marcar o post ***

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (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)
aderlanrm
Partner - Specialist
Partner - Specialist

Oi Pamela, deu certo?

Se conseguiu resolver dá um retorno ai!

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (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)