Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
isaiasdd
Creator
Creator

Datas não se filtram

Olá,

Tenho uma tabela assim:

LET vMinDate = NUM(DATE(FLOOR(MAKEDATE(2014,1,1))));

LET vMaxDate = NUM(DATE(FLOOR(TODAY())));

TempCalendar:

LOAD

  $(vMinDate) + IterNo()-1 As Num,

    Date($(vMinDate) + IterNo()-1) As TempData

    AutoGenerate 1 While $(vMinDate) + IterNo()-1 <= $(vMaxDate);

  

[Calendario]:

LOAD

  TempData As Data,

    Year(TempData) As Ano,

    Year(TempData)-1 as "Ano Anterior",

    Month(TempData) As Mês,

    Year(TempData) & '-' & Num(Month(TempData), '00') As "Ano-Mês"

RESIDENT TempCalendar

ORDER BY TempData ASC;

DROP TABLE TempCalendar;

E tenho uma outra tabela qualquer:

Vendas:

LOAD

     campo1

     campo2

     Data // o campo original mostra a data assim=> 01/01/2016 15:30:35

     Date(Data) // campo modificado para aparecer somente => 01/01/2016

FROM SQL SERVER;

O que está acontecendo é que no filtro de ano da tabela calendário não está filtrando os valores de data

na minha outra tabela (Vendas).

Mesmo as datas nas tabelas tendo o mesmo formato, elas não se filtram.

Alguém sabe o porque disto acontecer?

Labels (3)
1 Solution

Accepted Solutions
mauroponte
Creator II
Creator II

Isaias,

Reparei que na planilha de Vendas as datas estão com os horarios. Mesmo com o date() aparentemente nao resolvel, continua somando zero quando seleciono o ano.

Consegui resolver tratando as datas nas cargas das dua planilhas com a seguinte expressão:

date(Daystart([Data]),'DD/MM/YYYY')  as Data,

Dessa forma eu coloco todas as datas da planilha de vendas no horario 00:00:00.

No teste que fiz aqui funcionou.

View solution in original post

6 Replies
mauroponte
Creator II
Creator II

Isaias,

voce pode anexa o QVW? ou QVF se for no sense?

Para eu ver se consigo te ajudar?

Marcio_Campestrini
Specialist
Specialist

Boa tarde Isaias

O problema não seria o formato dos dois campos que estão sendo ligados entre o calendário e as vendas? Procure ligar os campos somente com a data, sem o horário.

Márcio

Márcio Rodrigo Campestrini
isaiasdd
Creator
Creator
Author

Márcio,

Eu tentei usar assim:

Date(Data) As Data // Data igual => 01/01/2016, ou seja igual a data do calendário, mas não funciona..

Em teoria os campos são os mesmos e os valores tbm.. mas por alguma motivo não está filtrando..

mauroponte
Creator II
Creator II

Isaias,

Reparei que na planilha de Vendas as datas estão com os horarios. Mesmo com o date() aparentemente nao resolvel, continua somando zero quando seleciono o ano.

Consegui resolver tratando as datas nas cargas das dua planilhas com a seguinte expressão:

date(Daystart([Data]),'DD/MM/YYYY')  as Data,

Dessa forma eu coloco todas as datas da planilha de vendas no horario 00:00:00.

No teste que fiz aqui funcionou.

isaiasdd
Creator
Creator
Author

Mauro,

Perfeito alterei aqui e funcionou perfeitamente.

Pensei que o somente date() era capaz de remover a hora e conseguir comparar com a tabela calendário, mas pelo jeito ele só mascara e continua comparando o horário.

Anonymous
Not applicable

Isaias.. o date() vai somente aplicar a mascara que você definir, ou o formato padrão caso você não defina nenhum, mas ele ainda continuará sendo o formato original do campo. Nesse caso você poderia fazer assim também:

date#(date(DATA,'DD/MM/YYYY'),'DD/MM/YYYY')


Dessa forma (date#()) você força o Qlik a avaliar aquele campo pelo formato informado. A mesma coisa serve para Num() e Num#().