Skip to main content

Brasil

Announcements
CUSTOMERS ONLY: Now accepting customer applications for the 2023 Luminary Program: SUBMIT NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Concatenate com Resident

Boa Noite Amigos, tudo bem?

Estou passando por dificuldades e gostaria de ajudar.

Tenho um arquivo .qvd  e gostaria de inserir novos dados a esse arquivo de uma outra fonte de dados no caso vários arquivos .txt.

Como o arquivo tem rótulos diferente do .qvd, pensei em fazer load de todos os arquivo em um tabela temporária usando as para renomear os rótulos e usar o concatenate com a tabela resident usando um not exists.

Todavia não está dando muito certo, poderiam por favor me ajudar?

*Poderia gerar um outro qvd com os arquivo .txt e concatena-los, entretanto, vejo que não é necessário.

**Caso não tenha sido claro, coloquei o script abaixo e anexei os arquivos

TABELA_PRINCIPAL:

LOAD

     NOME

,   FUMANTE

FROM ..\QVD\TAB_PRINCIPAL.QVD (qvd);

/////////////////////////////////////Arquivo Temporário

TEMP_TXT:

LOAD

  ID_NOME                     AS NOME

, ID_FUMANTE               AS FUMANTE

FROM ..\TXT\ARQ* //////////ler todos os arquivos na pasta

(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);

Concatenate (TABELA_PRINCIPAL)

LOAD

  NOME

, FUMANTE

Resident TEMP_TXT

Where NOT Exists(NOME);

DROP TABLE TEMP_TXT;

Labels (2)
1 Solution

Accepted Solutions
Marcio_Campestrini
Specialist
Specialist

Wallace

Eu inverti os parâmetros da função Exists.

Fica assim:

Where NOT Exists(NOME, ID_NOME);

Márcio Rodrigo Campestrini

View solution in original post

4 Replies
Marcio_Campestrini
Specialist
Specialist

Bom dia Wallace

Eu resolveria da seguinte forma:

TABELA_PRINCIPAL:

LOAD

     NOME

,   FUMANTE

FROM ..\QVD\TAB_PRINCIPAL.QVD (qvd);

/////////////////////////////////////Arquivo Temporário

TEMP_TXT:

LOAD

  ID_NOME

, ID_FUMANTE

FROM ..\TXT\ARQ* //////////ler todos os arquivos na pasta (txt, codepage is 1252, embedded labels, delimiter is '\t', msq);

Concatenate (TABELA_PRINCIPAL)

LOAD

  ID_NOME                     AS NOME

, ID_FUMANTE               AS FUMANTE

Resident TEMP_TXT

Where NOT Exists(ID_NOME, NOME);

DROP TABLE TEMP_TXT;


Espero que ajude.

Márcio Rodrigo Campestrini
Not applicable
Author

Bom dia!

Obrigado pela ajuda, entretanto não deu certo. Aparece um erro dizendo que o campo <NOME> não foi encontrado

Marcio_Campestrini
Specialist
Specialist

Wallace

Eu inverti os parâmetros da função Exists.

Fica assim:

Where NOT Exists(NOME, ID_NOME);

Márcio Rodrigo Campestrini
Not applicable
Author

Boa Noite!

Obrigado, deu muito certo!