Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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);
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;
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
Bom dia, alguém pode me ajudar?
Sabe como concatenar informações na hora do select?
Alguém pode ajudar?
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.
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).
Symbol Tables and Bit-Stuffed Pointers
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
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;
Muito obrigado Mario,
Ta funcionando, estou com outros problemas mas posto ajuda depois.
Atenciosamente.