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: 
junior_ehlke
Creator III
Creator III

Limitar uma expressão para 1 registro apenas

Bom dia, tenho uma situação em que eu preciso pegar o preço do produto antes de ele entrar em oferta, exemplo, no mes 06 ele teve venda todo dia com oferta='N'  e a partir do dia 25 ele passou a ter o preço de oferta='S'. Como faço para ele pegar o preço de venda o ultimo dia com preço normal?

Penso que é simples, porém não sei limitar isso em Set Analysis.

Acredito que seja algo como:

sum({<data_movimento={"<$(=max(data_da_oferta))"}, oferta-={'S'} >}preço_venda). porém vai me trazer todos os preços vendidos anteriormente, eu preciso do ultimo

Aqui entro em outra pergunta, quando eu quero falar que a condição seja diferente, o correto é colocar -= (menos e igual) porém o QV diz que a fórmula esta errada, com o traço vermelho apos toda a expressão.

outra duvida, com a expressao data_movimento={"<$(=max(data_da_oferta))"} eu digo que o movimento tem que ser ANTERIOR a data da oferta,  como faço para dizer que é IGUAL ou ANTERIOR?

Labels (1)
1 Solution

Accepted Solutions
fernando_tonial
Employee
Employee

Isso ocorre devido ao Set Analysis criado.

Sum({$<data_movimento={"<=$(=Max({$<oferta={'N'} >} data_da_oferta))"}>} preço_venda)


Altere para esse e veja como se comporta.


Sum({$<data_movimento={'$(=Max({$<oferta={'N'} >} data_da_oferta))'}>} preço_venda)


Como você quer exibir as informações?

É possível colocar um QVW exemplo?

Don't Worry, be Qlik.

View solution in original post

9 Replies
fernando_tonial
Employee
Employee

Olá Hamilton,

Tenta assim:

Sum({$<data_movimento={"<=$(=Max({$<oferta={'N'} >} data_da_oferta))"}>} preço_venda)


Qlikfique-se.

Tonial.

Don't Worry, be Qlik.
junior_ehlke
Creator III
Creator III
Author

Bom dia Tonial, acredito que não esta dando certo pelo motivo do campo oferta estar na tabela de movimento e a data_da_oferta estar em outra tabela

fernando_tonial
Employee
Employee

Pelo que sei, isso não é motivo para ficar sem funcionar.

Coloque um QVW com dados de exemplo para melhor ajudarmos.

Qlikfique-se.

Tonial.

Don't Worry, be Qlik.
junior_ehlke
Creator III
Creator III
Author

Perdão Fernando, estou fazendo os testes aqui e funcionou quase perfeitamente hehe.

Dessa forma o sistema traz todas as datas sem oferta da data da oferta para traz, eu precisaria limitar isso apenas em um registro como um limit 1 no sql hehe

fernando_tonial
Employee
Employee

Hamilton,

Não seria prudente você solicitar a seleção de algum produto ou via Set Analysis ou utilizar o Max no lugar do Sum.

Don't Worry, be Qlik.
junior_ehlke
Creator III
Creator III
Author

Então, não consegui entender, com o comando ele diz que a data maxima é 31/05/14 (que esta correto) porém se eu coloco o campo data como dimensão da tabela, ele me traz do dia 31/05/14 até o começo do ano.

To pensando em fazer uma view direto no banco, o que me diz?

fernando_tonial
Employee
Employee

Isso ocorre devido ao Set Analysis criado.

Sum({$<data_movimento={"<=$(=Max({$<oferta={'N'} >} data_da_oferta))"}>} preço_venda)


Altere para esse e veja como se comporta.


Sum({$<data_movimento={'$(=Max({$<oferta={'N'} >} data_da_oferta))'}>} preço_venda)


Como você quer exibir as informações?

É possível colocar um QVW exemplo?

Don't Worry, be Qlik.
junior_ehlke
Creator III
Creator III
Author

Se conseguir ver o que fiz de errado, a lógica é a seguinte

Pega a maior data do produto com oferta N sendo esta data Anterior a Data de Oferta

junior_ehlke
Creator III
Creator III
Author

Boa tarde Fernando, consegui resolver desta maneira:

=sum({<data_movimento={"<=$(=max({$<data_da_oferta-={'S'}>}Date(data_movimento, 'DD/MM/YYYY')))>"}>}preço_venda)

Vou testar os dados mas acredito que tenha dado certo. Obrigado mais uma vez pela ajuda.