Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
mario_ti
Creator
Creator

Nova coluna que não esta nos anteriores

Pessoal

Acho que alguem deve ter passado por isso.

Tenho um QVD com varios meses .. porem precisei add uma nova coluna no extract, dai da erro ao gerar pois informa que a coluna não existe, claro criei ontem (CHAVE do load incremental)

Hoje ao tentar gerar o extract valendo da esse erro, tem alguma forma de eu incluir no QVD essa coluna???

1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Mario,

Se a nova coluna para os arquivos antigos não for necessário preencher, basta fazer um loop lendo os QVD e incluir a coluna com null().

FOR Each ArquivoQVD in filelist ('*.qvd')

    Tabela:

    LOAD

      *,

      null()   as NovoCampo

    FROM $(ArquivoQVD) (qvd);

    Store Tabela into '$(ArquivoQVD)' (qvd);

    DROP Table Tabela;

NEXT ArquivoQVD

Mas se precisar popular esta coluna com a nova informação.....então o ideal seria ler o novo campo com somente a chave necessária e incluir na leitura do QVD......

exemplo

FOR Each ArquivoQVD in filelist ('*.qvd')

    Tabela:

    LOAD

      *

    FROM $(ArquivoQVD) (qvd);

   

    left join (Tabela)

    LOAD

       CampoChave1,

       CampoChave2,

       CampoChave3,

       CampoNOVO;

    SELECT C1,C2,C3,CN FROM BANCOSQL....

   

    Store Tabela into '$(ArquivoQVD)' (qvd);

    DROP Table Tabela;

   

NEXT ArquivoQVD;

Lembrar  que se for ler todos os campos do banco de dados necessarios no QVD fica pesado e lento, portanto coloquei como necessário os campos chaves para "ligar" no left join e mais o campo novo.

furtado@farolbi.com.br

View solution in original post

4 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Mario,

Se a nova coluna para os arquivos antigos não for necessário preencher, basta fazer um loop lendo os QVD e incluir a coluna com null().

FOR Each ArquivoQVD in filelist ('*.qvd')

    Tabela:

    LOAD

      *,

      null()   as NovoCampo

    FROM $(ArquivoQVD) (qvd);

    Store Tabela into '$(ArquivoQVD)' (qvd);

    DROP Table Tabela;

NEXT ArquivoQVD

Mas se precisar popular esta coluna com a nova informação.....então o ideal seria ler o novo campo com somente a chave necessária e incluir na leitura do QVD......

exemplo

FOR Each ArquivoQVD in filelist ('*.qvd')

    Tabela:

    LOAD

      *

    FROM $(ArquivoQVD) (qvd);

   

    left join (Tabela)

    LOAD

       CampoChave1,

       CampoChave2,

       CampoChave3,

       CampoNOVO;

    SELECT C1,C2,C3,CN FROM BANCOSQL....

   

    Store Tabela into '$(ArquivoQVD)' (qvd);

    DROP Table Tabela;

   

NEXT ArquivoQVD;

Lembrar  que se for ler todos os campos do banco de dados necessarios no QVD fica pesado e lento, portanto coloquei como necessário os campos chaves para "ligar" no left join e mais o campo novo.

furtado@farolbi.com.br
Anonymous
Not applicable

Faz o seguinte,

1-Carregue seu qvd em uma tabela, por exemplo:

[TabelaTeste]:

LOAD

*

FROM [...SeuQVD.qvd](qvd);

2-Crie um INLINE com esta nova coluna:

[InlineTemp]:

LOAD * INLINE

[NovaColuna

''

];

3-Junta o INLINE com a Tabela do QVD:

CONCATENATE([TabelaTeste])

LOAD

    [NovaColuna]

RESIDENT [InlineTemp];

4-Depois é só gravar tudo no qvd e apagar a tabela

STORE [Tabela Teste] INTO [...SeuQVD.qvd](qvd);

DROP TABLE [TabelaTeste];

mario_ti
Creator
Creator
Author

Deu certo .. obg

mario_ti
Creator
Creator
Author

Obrigado Paulo, vou testar este modo também ... Obg