Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

CARGA INCREMENTAL

Consegui montar quase tudo mas não sei como fazer o esquema das datas:

tipo, consegui fazer a consulta no banco e ele traz as informações, gravei o qvd e dropei a tabela.

Agora tenho o qvd com um campo datahora e tenho a consulta para atualizar esse qvd mas como fazer para a consulta verificar a maxdate dentro do qvd e usar como parametro na consulta para incrementar o qvd sem excluir nada e atualizar o periodo mais recente?

segue meu script

[HISTORICO_CCF]:

SELECT * FROM HISTORICO H

WHERE

h.his_pro_cod ='CCF'

and h.his_datahora >= 'O QUE DEVO COLOCAR AQUI ?? NO MEU QVD ATUALIZEI ATÉ 04/10/2016 ENTÃO O QUE COLOCAR AQUI PARA GERAR A CONSULTA OLHANDO ESSA DATA NO QVD ABAIXO E PEGAMNDO OS REGISTROS SUPERIORES A ESTA DATA'

Concatenate

LOAD HIS_COD,

     HIS_DEV_COD,

     HIS_COMPLEMENTO,

     HIS_DATAHORA,

     HIS_DURACAOLIGACAO,

     HIS_AGENDA,

     HIS_LIGACAOPAGA,

     HIS_NROTELEFONE,

     HIS_UNI_COD,

     HIS_THT_COD,

     HIS_USU_COD,

     HIS_MOC_COD,

     HIS_RETORNODISCADOR,

     HIS_VALIDO,

     HIS_REP_COD,

     TROCA,

     HIS_OCO_COD,

     HIS_PRO_COD,

     HIS_PEF_COD,

     HIS_TEL_COD

FROM

(qvd);

STORE [HISTORICO_CCF] INTO C:\Users\jeferson.vargas\Desktop\HISTORICO_CCF.QVD (qvd);

DROP TABLE [HISTORICO_CCF];

Labels (1)
8 Replies
Anonymous
Not applicable
Author

tmp:

load

max(HIS_DATAHORA) as HIS_DATAHORA

FROM

(qvd);

let vData = peek( 'HIS_DATAHORA', 0, tmp);

drop table tmp;

SELECT * FROM HISTORICO H

WHERE

h.his_pro_cod ='CCF'

and h.his_datahora >= '$(vData)' ;

....

Not applicable
Author

Valew Rodrigo, acho que estamos caminhando na direção certa, mas gerou um erro acho que se colocar um text em algum lugar funciona...segue o erroErro.jpg

Not applicable
Author

essa linha let vData = peek( 'HIS_DATAHORA', 0, tmp); será que precisa formatar para datahora? se sim como fazer irmão? Acho que deve ser isso...

rogerioalmeida
Creator
Creator

Jeferson,

Sugiro colocar tudo como numérico é mais fácil fazer a verificação pois o Qlik estará comparando números.

Acredito que ainda esta faltando você incrementar essa data dentro de um Laço For para ficar incrementando as datas que você deve correr, por exemplo iniciar no primeiro dia do mês e o For rodar até o último dia do mês.

Espero ter ajudado.

Not applicable
Author

brother ajudou muito mesmo me deu o norte...apenas formatei a variavel...

...apenas precisou formatar a data no campo

let vData = date(peek('HIS_DATAHORA',0,tmp),'DD/MM/YYYY');

Não descobrio ainda porque ele não achava as data quando estavam sem formato...e tambem não achava os campos quando estavam como datahora...mesmo no banco sendo data hora e mesmo formatando a variavel para datahora não funcionava...passei tudo para data e rolou!

Anonymous
Not applicable
Author

Os campos precisam estar no mesmo formato para funcionar.

De uma olhada nesse post do Clever, que vai te esclarecer.

Campos data/hora, também conhecidos como "Monstros S/A"

Not applicable
Author

Nossa DEPOIS Uma semana OU Duas de m uita peleia e Muita Leitura, MUITOS vídeos, e principalmente com a Ajuda de VOCÊS here fazer fórum achei o Erro OU Melhor achei varios Erros e varios acertos e principalmente aprendi Mais do Que imaginava Aprender MUITO OBRIGADO MESMO A TODOS QUE TIVERAM PACIENCIA COM MINHAS dúvidas e generosamente ajudaram!

Bom galera Primeiro:

QUANDO vou buscar a dados (data max) Dentro do QVD, Preciso formatar parágrafo timestamp porque no QVD Assim Como não meu oráculo o formato de e DD / MM / AAAA HH24: MM: SS é Isso vai Ser Jogado Dentro da variavel vData, Esse foi O Primeiro Erro ...

Segundo when declaro uma variavel NÃO Preciso Passar o formato Novamente pois ja passei não busco carga when não QVD é Isso estava Gerando o Erro de literal blablabla ... ufa

Terceiro DEPOIS de Passar um parágrafo variavel a buscar consulta no Oracle como INFORMAÇÕES repeitando uma variavel, tambem Precisa formatar o tipo de dados, VOCÊS me ajudaram Certo Quanto Ao USAR o TO_DATE mas Uma unica letra estava ferrando com a minha vida Aqui e POR ISSO NÃO funcionava Direito trazendo Valores de Dados Erradas ... resumindo sem Oracle e diferente do Qlik ... DD / MM / AAAA HH24: MI: SS esse "eu" Passou batido por Mim e POR ISSO nÃO funcionava ...

Entao FICA uma dica, não a Oracle DD / MM / AAAA HH24: MI: SS não Qlik DD / MM / AAAA HH: MM: SS

Obrigado a todos vou Ficar fera Nesse Qlik com a Ajuda de VOCÊS!

Not applicable
Author

Obrigado Rodrigo, Clever, Tonial