Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Criei um script de carga incremental para inserir os dados apartir do max data, só que não está executando conforme esperado. Como se ele não estivesse entendendo a clausura where DATA > '$(Data_ultVenda)';
MAX_DATA:
Load
Date(MAX (DATA)) as Data_ultVenda
FROM [lib://DADOS/QLV_VENDA_DIA.qvd] (qvd);
LET vdUltimaVenda = Peek('Data_ultVenda',0,MAX_DATA);
Venda:
SQL
SELECT
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
DATA,
SEQCLIENTE,
SEQNF,
SEQFAMILIA,
NRO_DIVISAO,
NRO_EMPRESA,
QTDE,
VALOR,
VLR_CUSTO,
VLR_PROMOCAO,
VLRCTOLIQUIDO,
VLR_CUSTO_BRUTO
FROM venda
where DATA > '$(Data_ultVenda)';
Concatenate
Load * FROM [lib://DADOS/QLV_VENDA_.qvd](qvd);
Store Venda into [lib://DADOS/QLV_VENDA_.qvd](qvd);
exit Script;
Alguém tem alguma dica?
Isso ocorre por causa do formato da data que vem da sua consulta SQL em relação ao formato de data que está na variável SET DateFormat='DD/MM/YYYY' do seu script de carga.
É necessário as duas datas estarem no mesmo formato. Por exemplo,
vdUltimaVenda = Date(vdUltimaVenda,'YYYY-MM-DD')
O formato da variável é o mesmo do campo data do load('DD/MM/YYYY'), porém na consulta sql o formato tem que ser do tipo '21-jan-2019', como posso fazer?
Na verdade, o incremental ideal seria pelo campo seqnf, pois adicionaria notas que não foram processadas antes do processamento da carga. Alguma sugestão?
Sugiro a conversão da data na consulta SQL de '21-jan-2019' para '21/01/2019', porém a função da conversão depende do banco que está utilizando.
Considerando que na sua tabela não tenha alteração dos registros passados, então a carga incremental melhor seria pelo campo chave da tabela. Você citou o campo seqnf .
temp:
LOAD
max(SEQNF) as id
FROM [lib://DADOS/QLV_VENDA_DIA.qvd] (qvd);
LET vId = Peek('id');
drop table temp;
Venda:
SQL
SELECT
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
DATA,
SEQCLIENTE,
SEQNF,
SEQFAMILIA,
NRO_DIVISAO,
NRO_EMPRESA,
QTDE,
VALOR,
VLR_CUSTO,
VLR_PROMOCAO,
VLRCTOLIQUIDO,
VLR_CUSTO_BRUTO
FROM venda
where SEQNF > $(vId);
Concatenate
Load * FROM [lib://DADOS/QLV_VENDA_.qvd](qvd);
Store Venda into [lib://DADOS/QLV_VENDA_.qvd](qvd);
Drop Table Venda;
Deu certo o script, só precisa retirar a linha abaixo.
Drop Table Venda;
"Sugiro a conversão da data na consulta SQL de '21-jan-2019' para '21/01/2019', porém a função da conversão depende do banco que está utilizando."
O banco que utilizo é o oracle.
Isso ocorre por causa do formato da data que vem da sua consulta SQL em relação ao formato de data que está na variável SET DateFormat='DD/MM/YYYY' do seu script de carga.
É necessário as duas datas estarem no mesmo formato. Por exemplo,
vdUltimaVenda = Date(vdUltimaVenda,'YYYY-MM-DD')
O formato da variável é o mesmo do campo data do load('DD/MM/YYYY'), porém na consulta sql o formato tem que ser do tipo '21-jan-2019', como posso fazer?
Na verdade, o incremental ideal seria pelo campo seqnf, pois adicionaria notas que não foram processadas antes do processamento da carga. Alguma sugestão?
Sugiro a conversão da data na consulta SQL de '21-jan-2019' para '21/01/2019', porém a função da conversão depende do banco que está utilizando.
Considerando que na sua tabela não tenha alteração dos registros passados, então a carga incremental melhor seria pelo campo chave da tabela. Você citou o campo seqnf .
temp:
LOAD
max(SEQNF) as id
FROM [lib://DADOS/QLV_VENDA_DIA.qvd] (qvd);
LET vId = Peek('id');
drop table temp;
Venda:
SQL
SELECT
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
DATA,
SEQCLIENTE,
SEQNF,
SEQFAMILIA,
NRO_DIVISAO,
NRO_EMPRESA,
QTDE,
VALOR,
VLR_CUSTO,
VLR_PROMOCAO,
VLRCTOLIQUIDO,
VLR_CUSTO_BRUTO
FROM venda
where SEQNF > $(vId);
Concatenate
Load * FROM [lib://DADOS/QLV_VENDA_.qvd](qvd);
Store Venda into [lib://DADOS/QLV_VENDA_.qvd](qvd);
Drop Table Venda;
Sugiro a conversão da data na consulta SQL de '21-jan-2019' para '21/01/2019', porém a função da conversão depende do banco que está utilizando.
Considerando que na sua tabela não tenha alteração dos registros passados, então a carga incremental melhor seria pelo campo chave da tabela. Você citou o campo seqnf .
temp:
LOAD
max(SEQNF) as id
FROM [lib://DADOS/QLV_VENDA_DIA.qvd] (qvd);
LET vId = Peek('id');
drop table temp;
Venda:
SQL
SELECT
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
DATA,
SEQCLIENTE,
SEQNF,
SEQFAMILIA,
NRO_DIVISAO,
NRO_EMPRESA,
QTDE,
VALOR,
VLR_CUSTO,
VLR_PROMOCAO,
VLRCTOLIQUIDO,
VLR_CUSTO_BRUTO
FROM venda
where SEQNF > $(vId);
Concatenate
Load * FROM [lib://DADOS/QLV_VENDA_.qvd](qvd);
Store Venda into [lib://DADOS/QLV_VENDA_.qvd](qvd);
Drop Table Venda;
Deu certo o script, só precisa retirar a linha abaixo.
Drop Table Venda;
"Sugiro a conversão da data na consulta SQL de '21-jan-2019' para '21/01/2019', porém a função da conversão depende do banco que está utilizando."
O banco que utilizo é o oracle.