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: 
marcelvinicius
Creator III
Creator III

Load Incremental para atualizar somente

Bom dia Pessoal, como vão?

Estou com uma dúvida/problema: tenho um Load incremental que esta rodando certinho. Porém se eu rodo a mesma data de consulta ele só soma arquivos ao invés de só atualiza-los. Eu não sei como fazer para ele excluir e atualizar.

Obs.: Retorno dados de uma procedure e a mesma não tem chave primária.

LET vrDataIni  = Date(MonthStart(Today()),'YYYY/MM/DD'); //Primeiro dia do mes

LET vrDataFim  = Date(MonthEnd(Today()),'YYYY/MM/DD'); //Ultimo dia do mes

LET vrMes = Date(MonthStart(Today()), 'DD/MM/YYYY'); //Mes ativo

LET vrAnoQvd = Date(MonthStart(Today()), 'YYYY'); //Ano ativo

Consumo Itens:

//*EXECUTE dbo.GetItemConsumo @Empresa, @Estabelecimento, @DtInicio, @DtFim*/

SQl Execute dbo.GetItemConsumo '1', '1', '$(vrDataIni)','$(vrDataFim)';

Consumo Anterior:

LOAD * FROM [lib://itens/consumoitens_$(vrAnoQvd).qvd] (qvd);

Concatenate

Get Consumo Itens:

SQL SELECT * FROM ##GetItemConsumo;

Store Get Consumo Itens into [lib://itens/consumoitens_$(vrAnoQvd).qvd] (qvd);

1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, é no Load mesmo;

Utiliza a declaração Load antes do SQL;

Exemplo:

Load

    Hash128(Código, Descricao, Identificaçao, DataMovimento) As 'SK_TAB1',

    *;

SQL

     SELECT

          *

     FROM ##GetItemConsumo;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

18 Replies
marcelvinicius
Creator III
Creator III
Author

Obs. 2: Verifiquei o retorno direto da procedure e a mesma traz esses campos:

Código, Descricao, Identificaçao, DataMovimento - consigo concatena-los para ser chave primária?

Exemplo: não posso passar somente um deles pois pode ter mais consumos do mesmo tipo de item em datas diferentes:

1AA  BUCHA  CA001  27/01/2017 00:00:00

1AA  BUCHA  CC191  18/01/2017 00:00:00

1AA  BUCHA  CC171  07/01/2017 00:00:00

1AA  BUCHA  CA010  26/01/2017 00:00:00

1AA  BUCHA  CC194  22/01/2017 00:00:00

1AA  BUCHA  CC196  04/01/2017 00:00:00

marcelvinicius
Creator III
Creator III
Author

Bom dia, alguém pode me ajudar?

Sabe como concatenar informações na hora do select?

marcelvinicius
Creator III
Creator III
Author

Alguém pode ajudar?

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue exemplo para gerar chave exclusiva:

Hash128( Código, Descricao, Identificaçao, DataMovimento) As 'SK_TAB1',

A função Hash128() gera 22 caracteres e o resultado é persistente, já em seu conjunto... Se optar em utilizar &' '& para concatenar os campos, parece que o resultado poderá ser superior a 22 caracteres.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Sobre performance,

Lembrando que a representação do hash ficará na tabela de símbolos, porém a tratativa interna para possíveis associações no modelo de dados será com a tabela de dados que é a representado por binários (que são como ponteiros para as tabelas de símbolos).

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Symbol Tables and Bit-Stuffed Pointers

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
marcelvinicius
Creator III
Creator III
Author

Boa tarde Mario,

Obrigado pela dica. Essa função concatena essas colunas? Eu coloco no Load ou no Select?

Ao rodar no meu Select:

Ocorreram os seguintes erros:

ErrorSource: Microsoft OLE DB Provider for SQL Server, ErrorMsg: 'Hash128' is not a recognized built-in function name.

O erro ocorreu aqui:

SQL SELECT Hash128(Código, Descricao, Identificaçao, DataMovimento) As 'SK_TAB1' FROM ##GetItemConsumo

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, é no Load mesmo;

Utiliza a declaração Load antes do SQL;

Exemplo:

Load

    Hash128(Código, Descricao, Identificaçao, DataMovimento) As 'SK_TAB1',

    *;

SQL

     SELECT

          *

     FROM ##GetItemConsumo;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
marcelvinicius
Creator III
Creator III
Author

Muito obrigado Mario,

Ta funcionando, estou com outros problemas mas posto ajuda depois.

Atenciosamente.