Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
qlik_
Creator
Creator

Usando váriavel em set analysis

Boa tarde gente

Estou com uma dúvida

Preciso fazer o seguinte cálculo contar quantas notas foram expedidas , 2 dias antes da data em que filtrei

exemplo:

No filtro selecionei

05 de fevereiro de 2015,

preciso saber quantas notas foram expedidas dia 2 de fevereiro,

desta forma criei uma variável vDataExpedido, dentro dela eu calculo dia do filtro - 2, até ai tudo certo.

Mas o cálculo abaixo não funciona, não sei usar variável em set analysis.

alguém tem alguma dica?

=count({$<CD_UO_ROMANEIO = {'0015', '0199'},TP_ROMANEIO ={'V'},DT_EMIS_ROMANEIO = {"=$(vDataExpedido)"}>}distinct NR_NF)

Labels (1)
35 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Carla, bom dia.

Tens como disponibilizar um modelo reduzido para ajudar?

furtado@farolbi.com.br
qlik_
Creator
Creator
Author

Gostaria....mas a base é muito extensa..

veja um exemplo abaixo:

minha variável carrega D-2 do dia que selecionei

será que o problema não é que ...o qlikview não reconhece como filtro quando coloco o campo dt_emissao_romaneio

sera que ele n quer comparar a 2014-02-09 com 2014-02-07

?

Not applicable

Carla, bom dia.

Uma ideia: e se usar as datas sem formatação para efeito de comparação entre as duas?

Assim por exemplo:

Variável: =num(DATA_FILTRO-1)

=count({$<CD_UO_ROMANEIO = {'0015', '0199'},TP_ROMANEIO ={'V'},num(DT_EMIS_ROMANEIO) = {'$(vData)'}>}distinct NR_NF)

Realizei alguns testes com formato de datas diferentes e funcionou.

Espero que lhe ajude.

qlik_
Creator
Creator
Author

se eu colocar direto

a data na consulta da certa

se  colocar a variável n funciona

sendo que a variável retorna a data ....

qlik_
Creator
Creator
Author

Gabriel

copiei e colei oq vc mandou..e da erro

Not applicable

Hum, verdade. Aparentemente não é aceito funções dentro de SetAnalysis. Eu testei a ideia aqui utilizando IF, apenas para verificar a comparação sem a formatação de data.

Quem sabe dessa forma:

Variável: =num(DATA_FILTRO-1)

=count(distinct if(TP_ROMANEIO ='V' and (CD_UO_ROMANEIO = '0015' or CD_UO_ROMANEIO ='0199') and num(DT_EMIS_ROMANEIO) = $(vData), NR_NF))

qlik_
Creator
Creator
Author

Gabriel

aqui no meu n deu certo

estou fazendo igualzinho vc me passou...

ta fod..

tava passando a data na mão pra testar...e funciona....ou seja minha consulta ta certa........só falta acerta como passar a data como parametro

=count({$<CD_UO_ROMANEIO = {'0015', '0199'},TP_ROMANEIO ={'V'},DT_EMIS_ROMANEIO = {'2014-10-13'}>}distinct NR_NF)

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Carla,

count({<CD_UO_ROMANEIO = {'0015', '0199'},TP_ROMANEIO ={'V'},DT_EMIS_ROMANEIO = {"$(=date(max(DATA_FILTRO)-1))"}>} distinct NR_NF)

Como fica?

Tenho ainda uma duvida Carla.  O campo DT_EMIS_ROMANEIO se voce colocar em uma lista e colocar para mostrar como numero e nao como data e no numero com decimal, ele tem decimal (que seria o datetime)?

Digo isto pois uma data 06-01-2014 12:00:00 nao vai ser igual a 06-01-2014  pois seria internamento comparativo de 41645.5 = 41645

AMF

furtado@farolbi.com.br
cesaraccardi
Specialist
Specialist

Ola Carla,

Eu acredito que esteja ocorrendo um problema com a formatacao. Quando voce faz o calculo para obter a data anterior a selecionada:

DATA_FILTRO - 1


O QlikView muda a formatacao para numerica automaticamente, por isso voce precisa reformatar para o formato de data desejado:

Date(DATA_FILTRO - 1, 'YYYY-MM-DD')

O que acontece e que quando voce utiliza essa expressao dentro do set analysis ela pode nao funcionar devido a um conflito com as aspas ' ' dentro das chaves { }:

count({$<CD_UO_ROMANEIO = {'0015','0199'},DT_EMIS_ROMANEIO ={'=$(=Date(DATA_FILTRO - 1,'YYYY-MM-DD'))'},TP_ROMANEIO ={'V'}>}distinct NR_NF)

O fato e que tanto aspas simples como duplas sao aceitas no set analysis porem neste caso como voce ja tem as aspas simples da formatacao da data deve usar as duplas no set analysis:

count({$<CD_UO_ROMANEIO = {'0015','0199'},DT_EMIS_ROMANEIO ={"=$(=Date(DATA_FILTRO - 1,'YYYY-MM-DD'))"},TP_ROMANEIO ={'V'}>}distinct NR_NF)

Isso tambem vale se utilizar uma variavel vData por exemplo:


Conteudo de vData:     =Date(DATA_FILTRO - 1, 'YYYY-MM-DD')


count({$<CD_UO_ROMANEIO = {'0015','0199'},DT_EMIS_ROMANEIO ={"$(vData)"},TP_ROMANEIO ={'V'}>}distinct NR_NF)

Espero ter ajudado.

Abracos,

Cesar

qlik_
Creator
Creator
Author

oi alessandro

todos os campos

estão no formato

2014-10-02

não tem nenhum campo datatime