Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
marciomgm
Creator
Creator

Erro estranho utilizando filtro com variáveis

Estou tentando utilizar uma variável para realizar um filtro ao invés de utilizar uma lista de seleção.

O que ocorre é que quando eu utilizo uma lista de seleção funciona corretamente mas quando tento usar em forma de variável ou especificando o valor da data simplesmente não funciona.


Veja o exemplo:


SET vDataPedido='14/09/2015';

count(if (DTPEDIDO='14/09/2015' , CODPEDIDO))    ---Não funciona

count(if (DTPEDIDO=vDataPedido , CODPEDIDO))    ---Não funciona

count(if (DTPEDIDO= $(vDataPedido) , CODPEDIDO))   ---Não funciona

Mas se eu adicionar uma lista com o campo DTPEDIDO e selecionar a data 14/09/2015  funciona perfeitamente!


Alguém teria uma explicação para isso?

Labels (4)
1 Solution

Accepted Solutions
nicolett_yuri

Marcio, o seu campo DTPEDIDO precisa ser uma data DD/MM/YYYY. Tome esse cuidado, pois a data que te é apresentada, visualmente, é apenas uma mascara. Talvez esse seu campo possua os valores de Hora/Minuto e Segundo. Neste caso a sua expressão não vai funcionar mesmo.


Faça um teste simples: Crie um objeto de Texto com o seguinte valor: =DTPEDIDO+0, selecione qualquer valor da coluna DTPEDIDO e veja se o número possui casa decimal. Casa decimal significa que sua data possui valores de Hora/Minuto e Segundo.

View solution in original post

13 Replies
julianacampag
Creator
Creator

Deixa a linha assim

SET vDataPedido=14/09/2015;

marciomgm
Creator
Creator
Author

Não funcionou

nicolett_yuri

Marcio, o seu campo DTPEDIDO precisa ser uma data DD/MM/YYYY. Tome esse cuidado, pois a data que te é apresentada, visualmente, é apenas uma mascara. Talvez esse seu campo possua os valores de Hora/Minuto e Segundo. Neste caso a sua expressão não vai funcionar mesmo.


Faça um teste simples: Crie um objeto de Texto com o seguinte valor: =DTPEDIDO+0, selecione qualquer valor da coluna DTPEDIDO e veja se o número possui casa decimal. Casa decimal significa que sua data possui valores de Hora/Minuto e Segundo.

jonas_rezende
Specialist
Specialist

Oi, Marcio Moraes.

Tente:

LET vDataPedido = MakeDate(Year(Now()),Month(Now()),Day(Now()));

Count({<DATPEDIDO={$(vDataPedido)}>} CODPEDIDO);

marciomgm
Creator
Creator
Author

Olá Yuri,

Fiz o seu teste e não retornou nenhuma decimal.

Eu confirmei que o formato que vem do banco de dados é DD/MM/YYYY idêntico ao valor da minha variável.

Que negócio doido já tentei de tudo dentro do meu conhecimento básico

marciomgm
Creator
Creator
Author

Deu erro na expressão

ErrorL Error in set modifier ad hoc element list:

','or ')' expected

jonas_rezende
Specialist
Specialist

Marcio Moraes.

Desculpe-me, coloque a variável entre apóstrofe.

Count({<DATPEDIDO={'$(vDataPedido)'}>} CODPEDIDO)


ScriptResultado.JPGResultadoPedido.JPG

marciomgm
Creator
Creator
Author

Não funcionou.

O resultado fica = 0

Sendo que se eu usar  objeto lista e filtrar 14/09/2015 em um objeto texto com o conteudo

Count(CODPEDIDO)

o resultado aparece certo.

marciomgm
Creator
Creator
Author

Será que pode ser erro de modelagem?