Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia a todos
Eu estou com uma dúvida em relação a carga de dados vindos de arquivos QVD.
Estou fazendo uma carga parcial (leituras de 100 linhas, conforme script abaixo), e após carregar dois arquivos, o total de linhas da tabela de destino (PedidoVenda) é de 300 linhas e não 200, como era o esperado.
Alguém tem uma ideia do motivo?
Let $(vL.Ano) = Year(Today(1));
Let $(vL.Linha) = 100;
For i = $(vL.Ano) - 1 To $(vL.Ano)
PedidoVenda:
First $(vL.Linha)
Load * From $(vG.SharedQVDPath)PedidoVenda_$(i).qvd (qvd);
Next
Obrigado!
Bom dia.
Coloca dentro do loop a resolução do nome do qvd e debuga para saber o que está lendo duplicado.
Att.
Luciano.
Em 30/12/2014, às 08:35, Márcio Rodrigo Campestrini <qcwebmaster@qlikview.com> escreveu:
Qlik Community
Carga de arquivos QVD
criado por Márcio Rodrigo Campestrini em Qlik Brasil - Visualize a discussão completa
Bom dia a todos
Eu estou com uma dúvida em relação a carga de dados vindos de arquivos QVD.
Estou fazendo uma carga parcial (leituras de 100 linhas, conforme script abaixo), e após carregar dois arquivos, o total de linhas da tabela de destino (PedidoVenda) é de 300 linhas e não 200, como era o esperado.
Alguém tem uma ideia do motivo?
Let $(vL.Ano) = Year(Today(1));
Let $(vL.Linha) = 100;
For i = $(vL.Ano) - 1 To $(vL.Ano)
PedidoVenda:
First $(vL.Linha)
Load * From $(vG.SharedQVDPath)PedidoVenda_$(i).qvd (qvd);
Next
Obrigado!
Responda a esta mensagem respondendo a este e-mail ou vá para a mensagem em Qlik Community
Inicie uma nova discussão em Qlik Brasil por e-mail ou em Qlik Community
Seguindo Qlik Brasil nestes fluxos: Caixa de Entrada
Faça da seguinte maneira, Márcio:
Let vL.Ano = Year(Today(1));
Let vL.Linha = 100;
For i = $(vL.Ano) - 1 To $(vL.Ano)
PedidoVenda:
Load * From $(vG.SharedQVDPath)PedidoVenda_$(i).qvd (qvd)
Where RecNo() <= $(vL.Linha);
Next
Boa tarde Felipe
Fiz o que você sugeriu e funcionou. Somente ainda não entendi o que estava acontecendo.
Bom dia.
Eu acredito que nao seja o For o problema.
Fiz um teste com a seguinte rotina
PedidoVenda:
First 10 Load * From Final_2013.qvd (qvd);
Concatenate
First 10 Load * From Final_2014.qvd (qvd);
e mesmo assim le 10 registros no primeiro qvd e 20 no segundo dando 30 o total nos 2 qvds,
Por teoria deveria ler 10 registros de cada. Sera que nao pode ser um bug no first / load ?
Alessandro Furtado
Alessando, posso estar errado, mas quando vc concatena as tabelas, o contador nao zera, o QV le 10 registros da primeira e 10 da segunda, porém no contador da um total de 20, aparecendo 10 no Final_2013.qvd e 20 no Final_2014.qvd
Me equivoquei, fiz um teste aqui, como eu disse anteriormente o sistema não zera o contador de um QVD para o outro, porém usando o FIRST ele realmente aparece 30 ao invés de 20, parece que ele vai multiplicando os FIRSTs
Venda_10_2014 (qvd optimized) 10 registros lidos
Venda_10_2014 << Venda_11_2014 (qvd optimized) 30 registros lidos
Venda_10_2014 << Venda_12_2014 (qvd optimized) 70 registros lidos
porém se usar o modo Depurador não carrega a ultima tabela:
Venda_10_2014 (qvd optimized) 10 registros lidos
Venda_10_2014 << Venda_11_2014 (qvd optimized) 30 registros lidos
--- Script Finalizado ---
Mais alguém já teve um problema parecido: Working of first and Concatenate
Outra solução seria carregar a tabela sem concatenar e depois concatenar os dados na tabela principal lendo com RESIDENT.