Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Ribeiro
Specialist
Specialist

Rotina NoConcatenate para salvar e comparar QVD.

Pessoal Gostaria de criar uma rotina simples.

Tentei fazer sozinho. Mas acho que estou errado em algum lugar.

Toda vez que atualizar o Qlikview ele fazer a comparação através do NoConcatenate pela data, caso tenha modificação do arquivo mdb em anexo.

Anexo tem os arquivo.

Tabela em mdb

arquivo. qvw

arquivo qvd.

//Conexão com o Banco de Dados

ODBC CONNECT32 TO [MS Access Database;DBQ=C:\test\test.accdb];

//Movimento:

//LOAD `Código`,

//    Filial,

//    Data,

//    Hora,

//    Produto,

//    Tamanho,

//    `Estoque_Anterior`,

//    Sequencia,

//    Saida,

//    `Valor_Saida`;

//SQL SELECT *

//FROM Movimentos;

//

//store Movimento into C:\test\movimento.qvd(qvd);

//**************************************

//Lendo o QVD

Movimento:

LOAD Código,

     Filial,

     Data,

     Produto,

     Tamanho,

     Estoque_Anterior,

     Sequencia,

     Saida,

     Valor_Saida

FROM

(qvd);

Sort_Movimento: 

LOAD * 

Resident Movimento 

Order by Data; 

LET 'vUpdateDate' = Peek('Data', -1,'Sort_Movimento'); 

DROP Table Movimento; 

//**************************************

incremental: 

NoConcatenate

LOAD Código,

     Filial,

     Data,

     Produto,

     Tamanho,

     Estoque_Anterior,

     Sequencia,

     Saida,

     Valor_Saida;

     SQL SELECT * 

FROM Movimento 

where Data >= #$(vUpdateDate)#;

Neves
1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Eu acho que o que você queria é:

//Lendo o QVD 

Movimento: 

LOAD Código,  

     Filial,  

     Data,  

     Produto,  

     Tamanho,  

     Estoque_Anterior,  

     Sequencia,  

     Saida,  

     Valor_Saida 

FROM [movimento.qvd](qvd); 

 

 

Sort_Movimento:   

noconcatenate LOAD *   

Resident Movimento   

Order by Data;   

LET 'vUpdateDate' = Peek('Data', -1,'Sort_Movimento');   

DROP Table Movimento;   

 

 

//************************************** 

incremental:     

concatenate (Sort_Movimento) LOAD Código,  

     Filial,  

     Data,  

     Produto,  

     Tamanho,  

     Sequencia,  

     Saida,  

     Valor_Saida; 

SQL SELECT *   

FROM Movimentos   

where Data >= #$(vUpdateDate)#;  

View solution in original post

7 Replies
Clever_Anjos
Employee
Employee

temos 2 problemas ai

Na linha 39, os registros irão ser juntados na mesma tabela, pois tem os mesmos campos, deveria colocar um NOCONCATENATE antes do load

Na linha 48 você está tentando ler (Não seria um RESIDENT?) uma tabela que acabou de deletar

Ribeiro
Specialist
Specialist
Author

Não deu Certo Chaver,

Deu um problema.

Continua com o problema.

Caso você tenha algum exemplo mais simples ou mais automatizado. Ficarei Feliz

Neves
Clever_Anjos
Employee
Employee

Poderia ser mais específico quanto ao problema?

Clever_Anjos
Employee
Employee

Olhei seu access aqui, sua tabela não chama Movimento mas sim Movimentos e não existe o campo no access tb.

incremental:   

NoConcatenate  

LOAD Código,  

     Filial,  

     Data,  

     Produto,  

     Tamanho,  

     Estoque_Anterior,  

     Sequencia,  

     Saida,  

     Valor_Saida; 

SQL SELECT *   

FROM Movimentos   

where Data >= #$(vUpdateDate)#;  

Clever_Anjos
Employee
Employee

Eu acho que o que você queria é:

//Lendo o QVD 

Movimento: 

LOAD Código,  

     Filial,  

     Data,  

     Produto,  

     Tamanho,  

     Estoque_Anterior,  

     Sequencia,  

     Saida,  

     Valor_Saida 

FROM [movimento.qvd](qvd); 

 

 

Sort_Movimento:   

noconcatenate LOAD *   

Resident Movimento   

Order by Data;   

LET 'vUpdateDate' = Peek('Data', -1,'Sort_Movimento');   

DROP Table Movimento;   

 

 

//************************************** 

incremental:     

concatenate (Sort_Movimento) LOAD Código,  

     Filial,  

     Data,  

     Produto,  

     Tamanho,  

     Sequencia,  

     Saida,  

     Valor_Saida; 

SQL SELECT *   

FROM Movimentos   

where Data >= #$(vUpdateDate)#;  

Ribeiro
Specialist
Specialist
Author

Funcionou, 100%

Agora ele vai carregar somente o incremental.

Obrigado

Desculpas, Sou novato e estava cansado.

Neves
Clever_Anjos
Employee
Employee

De boa, acontece

Mantenha contato