Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Tarde.
Pessoal gostaria de saber como posso fazer para alimentar um unico campo com valores diferentes.
Tenho algumas datas no campo chData onde eu quero trazer a data final de cada mês mais a maior data do
mês vigente.
exemplo.
Tab1:
load chData from arquivo.qvd;
Datas:
load chData resident tab1 where chData = date#(monthEnd(chData)) and chData = date(max(chData));
Porém o Qlikview acusa erro de expressão por causa do date(max(chData)) e ate o momento não encontrei um solução para fazer isso..
Alessandro,
Eu consegui fazer desta forma abaixo mas acredito que talvez não seja a melhor.
/*Aqui está tudo certo*/
DATA:
LOAD
ChaveData,
Codigo,
Nome
FROM ARQUIVO.QVD WHERE ChaveData = Date#(MonthEnd(ChaveData)) or (ChaveData >= Date#(MonthStart(Today())) and ChaveData <= Date#(MonthEnd(Today())))
/*isso foi que eu fiz para resolver o problema em questão
GRAFICO_1:
LOAD ChaveData as ChaveGrafico
resident DATA where ChaveData = date#(MonthEnd(ChaveData));
LOAD date(max(ChaveData)) as ChaveGrafico
resident DATA;
Depois deste código tenho receio que de algum problema, pois como informei os dados que tenho no campo ChaveData são:
30/11/14
31/12/14
01/01/15
02/01/15
03/01/15
e na tabela GRAFICO_1 ta vindo correto pq o ultimo registro é 03/05/15. Queria descobrir uma outra maneira de criar essa tabela com os dados 30/11/14 31/12/14 03/01/15 para que não haja problema.
Boa tarde Luiz.
O erro se deve ao fato que você esta usando o MAX sem o group by.
Sobre o que você precisa, eu precisaria de algum exemplo. Pois para trazer a maior data do mês daria para usar o monthend ou se for para pegar a maior data do mês, usar o max com group by Ano,MES por exemplo.
AMF
Alessandro,
Eu consegui fazer desta forma abaixo mas acredito que talvez não seja a melhor.
/*Aqui está tudo certo*/
DATA:
LOAD
ChaveData,
Codigo,
Nome
FROM ARQUIVO.QVD WHERE ChaveData = Date#(MonthEnd(ChaveData)) or (ChaveData >= Date#(MonthStart(Today())) and ChaveData <= Date#(MonthEnd(Today())))
/*isso foi que eu fiz para resolver o problema em questão
GRAFICO_1:
LOAD ChaveData as ChaveGrafico
resident DATA where ChaveData = date#(MonthEnd(ChaveData));
LOAD date(max(ChaveData)) as ChaveGrafico
resident DATA;
Depois deste código tenho receio que de algum problema, pois como informei os dados que tenho no campo ChaveData são:
30/11/14
31/12/14
01/01/15
02/01/15
03/01/15
e na tabela GRAFICO_1 ta vindo correto pq o ultimo registro é 03/05/15. Queria descobrir uma outra maneira de criar essa tabela com os dados 30/11/14 31/12/14 03/01/15 para que não haja problema.
Luiz,
este exemplo faz o que voce comentou.
Calendario:
LOAD
Data
Where Data_Final_Mes = 1 or Data = Today();
LOAD
Data,
if(floor(Data) = floor(MonthEnd(Data)) and Data <= Today(),1,0) as Data_Final_Mes;
load
date(yearstart(addmonths(Today(),-3)) + RecNo()) as Data
AutoGenerate 1100;
Certo.
Obrigado Alessandro.