Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Galera boa noite,
Como consigo fazer uma safra de 45 dias?
Exemplo:
Tenho um cliente que mudou a analise dos produtos e agora quer por SAFRA
Antes disso realizava as analises por dia, semana, mês, trimestre e ano.
Agora preciso analisar por SAFRA de 45 dias, então como faço isso?
Tem algum comando especifico para SAFRA?
exemplo:
LOAD
DATA
PRODUTO
VALOR
QTD
FROM MEU QVD
Jeferson,
Nao entendi muito bem. Seu cliente quer saber a soma de valor e qtd dos ultimos 45 dias partindo de uma data informada? ou da data atual? é isso?
O que é uma SAFRA? Poderia detalhar melhor?
Entendo se você tenha um tabela Calendario seria uma nova coluna com a logica necessária
Buenas meu caro Clever, caro Mauro
SAFRA: periodo de validade da carteira de produto, exemplo, recebo uma base de clientes que posso trabalhar somente em determinado periodo, tipo: do dia 01/10 ao dia 15/11 on de receberei uma nova safra de clientes e depois de algum tempo terei que fazer a analise de ambas as safras ou de de safras passadas...então SAFRA é o periodo de validade da carteira de clientes.
Tem alguma função que agrupa 45 dias? tipo do 1 ao 45 ? o máximo que consegui foi 31 dias ou selecionando dois meses e no ultimo selecionando até o dia 15
Jeferson,
Tente:
sum({<SeuCampoData={">=$(=date(SeuCampoDia&'/'&num(SeuCampoMes,'00')&'/'&SeuCampoAno,'DD/MM/YYYY'))<=$(=date(SeuCampoDia&'/'&num(SeuCampoMes,'00')&'/'&SeuCampoAno,'DD/MM/YYYY')+45)"},SeuCampoMes=,SeuCampoAno=,SeuCampoDia=>} SeuCampoValor)
Quando voce selecionar ano, mes e dia deve contar a data de referencia e somar tudo dessa data até a data de 45 dias para frente.
Espero que resolva seu problema.
Tente criar um campo assim:
LOAD
Data,
'Safra ' & num(Floor((Data - YearStart(Data))/45)) as SAFRA;
LOAD
Date(Today()-RecNo()) as Data
AutoGenerate 300;
Ótimo, quase perfeito só preciso de um ajuste:
Clever se eu precisar alterar a data de começo da safra por algum motivo pontual exemplo: atraso no recebimento da base de dados tipo minha safra terminou 30/03 e recebi uma nova safra apenas dia 03/04 como faço para dar start nesta nova safra a partir da data de carregamento e ja vendo por esta ótica, no lugar do campo data posso usar uma variavel que receba a data de carregamento(importação da base)? sendo assim a variavel podia ler a data da carga e neste campo data que você criou usar essa variavel e estartar a partir desta data...mas não sei como colocar isso na pratica
Eu usei o primeiro dia do ano, você poderia usar qualquer valor
Tipo
LET DataRef=Num(Date#('03/04/2016','DD/MM/YYYY'));
LOAD
Data,
'Safra ' & num(Floor((Data - $(DataRef))/45)) as SAFRA;
LOAD
Date(Today()-RecNo()) as Data
AutoGenerate 300;
Tu é o cara brother...
Então o scrip aqui é para pegar o ano é isso?
LOAD
Date(Today()-RecNo()) as Data
AutoGenerate 300;
aqui eu crio a variavel e digo que é essa data ok? e se eu colocar o meu campo de importação da base nesta variavel vai começar a contar os 45d a partir dai é isso?
LET DataRef=Num(Date#('03/04/2016','DD/MM/YYYY'));
Bom fiz assim por enquanto:
//Seleciona a maior data de carregamento
SAFRA2MAXDATE:
load Timestamp(max(DIV_DATAMATRIZ),'DD/MM/YYYY hh:mm:ss')as MAXDATA
FROM
(txt, codepage is 1252, embedded labels, delimiter is ';', msq);
//------------------------------------------------------
//variavel para pegar na SAFRA2MAXDATE a ultima data de carregamento
LET vCarga = Peek('MAXDATA',0,SAFRA2MAXDATE);
//------------------------------------------------------
drop table SAFRA2MAXDATE;
-------------------------------------------------------------------
Coloquei a SAFRA para gerar usando a tabela historico onde eu armazeno todas as ocorrencias assim saberei o que aconteceu nas SAFRAS de acordo com as ocorrencias.
Mas como não importei nada no Qlik antes do dia 03/10 não deveria aparecer só uma SAFRA? tIPO DO DIA 03/10 até 45 dias para frente? ou até hoje?
Tchê não entendi porque aparece Safra 947 e 948
Bom vou dar uma boa analisada agora antes de pedir agua se não conseguir eu volto...
Valew
1) "Então o scrip aqui é para pegar o ano é isso?
LOAD
Date(Today()-RecNo()) as Data
AutoGenerate 300;"
Não, isso gera um pequeno calendário como exemplo
2) "Tchê não entendi porque aparece Safra 947 e 948"
É porque você está usando campos datahora. (leia isso por favor Campos data/hora, também conhecidos como "Monstros S/A"). Trabalhe com campo data "puro" para que os cálculos sejam corretos
SAFRA2MAXDATE:
load Floor(max(DIV_DATAMATRIZ))as MAXDATA
FROM
(txt, codepage is 1252, embedded labels, delimiter is ';', msq);