Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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?
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.
Isaias,
voce pode anexa o QVW? ou QVF se for no sense?
Para eu ver se consigo te ajudar?
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,
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..
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.
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.
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#().