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

Usar concatenate

Pessoal, estou com uma difuculdade de usar um comando simples o "Concatenate" sempre me retorna erro.

Penso que essa concatenação deveria ser automatica por conta das colunas e quantidade serem iguais, mas como não foi automática resolvi forçar com o comando, mas sempre me retorna erro na hora de carregar a segunda consulta.

No meu script de gerar o QVD tenho essa consulta:

SLO_UNION_A:
LOAD
"AGREEMENT_ID",
"SLO_ID",
"NAME",
"DESCRICAO";
SQL select AGREEMENT_ID, SLO_ID, NAME, CI as  DESCRICAO
FROM SMhom.dbo.SLOAVAIL1M1;
STORE SLO_UNION_A into ..\QVD\SLO_UNION_A.qvd(qvd);
DROP Table SLO_UNION_A;

CONCATENATE

SLO_UNION_B:
LOAD
"AGREEMENT_ID",
"SLO_ID",
"NAME",
"DESCRICAO";
SQL select AGREEMENT_ID, SLO_ID, NAME, SERVICE_AREA as DESCRICAO
FROM SMhom.dbo.SLOM1;
STORE SLO_UNION_B into ..\QVD\SLO_UNION_B.qvd(qvd);
DROP Table SLO_UNION_B;

Obrigado.

Labels (1)
3 Replies
jonas_rezende
Specialist
Specialist

Boa tarde, Joao Eduardo Vasconcelos.

Qual é a mensagem de erro?

De qualquer forma, observar que antes do comando CONCATENATE, a tabela tem um comando Drop.

[]s,

Jonas Melo.

TiagoCardoso
Creator II
Creator II

Boa tarde Joao Eduardo, tudo bem?

De acordo com o Jonas e reforçando também:

1 - Particularmente eu prefiro usar o CONCATENATE passando o parâmetro nome da tabela para reforçar;

CONCATENATE (SLO_UNION_A)

LOAD  stmt [...]

2 - Se você vai concatenar a tabela SLO_UNION_B com a tabela SLO_UNION_A, seria o mesmo de concatenar a tabela de baixo com a de cima, não sendo necessária a adição de nome, como representado no seu script, devendo ficar apenas o comando CONCATENATE (SLO_UNION_A) e o LOAD statement logo appós;

3 - Favor verificar também os DROP statements, se possível colocá-los no fim do script ou onde tenha certeza de que não afetarão na construção das tabelas.

Not applicable
Author

RESOLVIDO!

Galera eu retirei os DROPs e não resolveu, ficou dando mensagem não encontrada. "porque não sei ainda"

Resolvi da seguinte forma, carreguei as tabelas normalmente através dos scritps e ao carregar os QVD deveria gerar a concatenação automática, mas não gerava porque eu estava colocando uma função QUALIFY *; dessa forma o nome da tabela estava na frente do nome da coluna (tabela.coluna) e não identificava como sendo nomes iguais.

Resolvi colocando antes da carga do QVD a função UNQUALIFY assim gerando a concatenação automática.

UNQUALIFY *;

Directory;
LOAD AGREEMENT_ID ,
     AGREEMENT_ID as %AGREEMENT_ID,
     AGREEMENT_ID & SLO_ID as SLO_ID_COMPOSTA,
     SLO_ID ,
     NAME,
     DESCRICAO
FROM
[..\qvd\SLO_UNION_B.qvd]
(qvd);


LOAD AGREEMENT_ID,
     AGREEMENT_ID as %AGREEMENT_ID,
     AGREEMENT_ID & SLO_ID as SLO_ID_COMPOSTA,
     SLO_ID ,
     NAME ,
     DESCRICAO
FROM
[..\qvd\SLO_UNION_A.qvd]
(qvd);