Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal,
Sempre tive esse dúvida, e resolvi perguntar,Vamos ao caso:
imaginem que eu tenho um carga desde de 2011 com modelo do Qlikview, o usuário deseja alterar e adicionar mais um campo de uma tabela que não tem atualmente na minha carga, preciso alterar essa informação e adicionar...como eu faço para não perde os dados antigos (recarregar coisas antigas) e partir daquela data especifica ler aquele campo novo também?
Base:
LOAD,
*
null() as CampoFaltante
from QVD_Antigo.qvd(qvd);
concatenate(Base)
LOAD
*
from QVD_Novo.qvd(qvd);
Bom, se o campo em questão tiver relacionamento (Ex: código de algum produto ou descrição, tipos de notas, entre outras coisas) com as informações contidas em seu histórico, podes então ler o QVD histórico e realizar um left join para complementar esta informação do histórico e gravar em outro QVD.
Agora, se o campo em questão não tiver relacionamento, terás que montar uma lógica para carregar novamente este histórico.
Coloque null() nas registros antigos
Como eu coloco "null" nos outro registro, porque quando vai carregar o Qlikview reclama que nao achou o campo
na verdade eu tenho isso por exemplo
Select ID, nome, telefone from pessoas
Agora eles querem CPF então minha select para
Select ID, nome, telefone , CPF from pessoas
só que só dessa data em diante, o que tem antes nao mexe...como faço para qlikview nao reclamar?
Base:
LOAD,
*
null() as CampoFaltante
from QVD_Antigo.qvd(qvd);
concatenate(Base)
LOAD
*
from QVD_Novo.qvd(qvd);
Então Cleber fiz o que você falou está me trazendo assim dois registro
Segue meu Script de reaload:
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD/MM/YYYY';
//SET TimestampFormat='DD/MM/YYYY hh:mm';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';
SET DayNames='seg;ter;qua;qui;sex;sáb;dom';
SET vPath = 'C:\QlikViewServer\producao\Dados\QVD';
PEROMANCE_IMP:
LOAD Distinct
SIGLACTR,
ATENDIMENTO,
DOCUMENTO,
MISSAO,
IDATIVIDADE,
PERIODO,
EXCESSO,
Timestamp(DATAATIVIDADE) as DATAATIVIDADE ,
USUARIO,
PLACAVEICULO,
DTSAIDAGATEINTERNO,
DTENTGATEINTERNO,
DTENTGATESEG,
DTSAIDAGATESEG,
TAMANHOCNTR,
USUARIODADESCARGA,
PORTOORIGEM,
IMPORTADOR,
TIPOCTR,
Week(DTENTGATESEG) as SEMANAS,
Year(DTENTGATESEG) AS ANO,
Month(DTENTGATESEG) AS MES,
Day(DTENTGATESEG) AS DIA,
MTYP_DESCRIPTION AS MISSAO_GATE,
TRANSPORTADORA,
null() as LOCN_DESCRIPTION,
null() as CRUN_ID
FROM [$(vPath)\perfomance_gate_imp_*.QVD](qvd);
concatenate(PEROMANCE_IMP)
Load
*
FROM [$(vPath)\Novo_perfomance_gate_imp_*.QVD](qvd);
PERFOMANCE_EXP:
LOAD Distinct
SIGLACTR,
ATENDIMENTO,
IMPORTADOR,
MISSAO,
EXP_TIPO,
IDATIVIDADE,
PERIODO,
EXCESSO,
Timestamp(DATAATIVIDADE) as DATAATIVIDADE ,
EQUIPAMENTO,
PLACAVEICULO,
DTSAIDAGATEINTERNO,
DTENTGATEINTERNO,
DTENTGATESEG,
DTSAIDAGATESEG,
TAMANHOCNTR,
POSICAO_QUADRA,
TIPOCTR,
Hour(DATAATIVIDADE) as Hora_atendimento,
Hour(DTSAIDAGATEINTERNO) as Hora_SAIDA_GATE_OPR,
Hour(DTSAIDAGATESEG) as HORA_SAIDA_GATE_SEG,
Hour(DTENTGATESEG) as Hora_ENTR_GATE_SEG,
Hour(DTENTGATEINTERNO) AS HORA_ENTR_GATE_OPR,
Week(DTENTGATESEG) as SEMANAS,
Year(DTENTGATESEG) AS ANO,
Month(DTENTGATESEG) AS MES,
Day(DTENTGATESEG) AS DIA,
MTYP_DESCRIPTION AS MISSAO_GATE,
TRANSPORTADORA,
null() as CRUN_ID
FROM [$(vPath)\perfomance_gate_exp*.QVD](qvd);
Concatenate(PERFOMANCE_EXP)
load *
FROM [$(vPath)\Novo_perfomance_gate_exp*.QVD](qvd);
ESCALA_GATE:
LOAD
Month(DATA_ESCALA) AS MES,
NOME_EQUIPE,
ID_MES ,
DIA,
PERIODO as PERIODO_ESCALA,
STATUS_ESCALA,
ESCALA_ANO as ANO
FROM
[$(vPath)\ESCALA_GATE_*.QVD]
(qvd);
MISSAO_CASADA:
LOAD
MISSAO_CAS,
CRUN_ID
FROM
[$(vPath)\MISSAO_CASADA_*.QVD]
(qvd);
Funcionou, Não tinha percebido que existia um com a Carga do mesmo Mês no modelo antigo por isso aparecia dois registro