Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Ribeiro
Specialist
Specialist

O Erro NoConcatenate "QVD" Comparação.

Estou querendo fazer a comparação Data_Quitacao. Mas ele está dando este erro.

Alguém poder me dizer o que estou fazendo de errado.

Seque o Script.


O Erro NoConcatenate "QVD" Comparação.

27-05-2015 09-45-41.jpg

O Erro:

Erro de sintaxe, cláusula FROM faltando ou colocada na posição errada:

Incremental:

NoConcatenate

LOAD Tipo_Conta,

     Ordem_Plano_Contas3,

     CodigoFilial,

     NomeFilial,

     Pagar_Receber,

     Ano,

     Dia,

     Trimestre,

     Mes,

     AnoMes,

     Situacao,

     CodigoPlanoContas2,

     NomePlanoContas2,

     NomePlanoContas3,

     CodigoPlanoContas3,

     Data_Efetivado,

     Valor_Quitado,

     Exclui_DRE,

     Sequencia,

     Descricao,

     Tela_Origem,

     Tela_Quitacao,

     Data_Emissao,

     Data_Quitacao,

     CodigoCliente,

     Data_Vencimento,

     NomeCliente,

     Valor_Total,

     CodigoPlanoContas1,

     Tipo_Recebido_Pago,

     NomePlanoContas1,

     Ordem

     SQL SELECT *

FROM "S9_Real".dbo."View_Contas_Receber"

where Data_Quitacao >= #10/07/2015 00:00:00#

Incremental:

NoConcatenate

LOAD Tipo_Conta,

     Ordem_Plano_Contas3,

     CodigoFilial,

     NomeFilial,

     Pagar_Receber,

     Ano,

     Dia,

     Trimestre,

     Mes,

     AnoMes,

     Situacao,

     CodigoPlanoContas2,

     NomePlanoContas2,

     NomePlanoContas3,

     CodigoPlanoContas3,

     Data_Efetivado,

     Valor_Quitado,

     Exclui_DRE,

     Sequencia,

     Descricao,

     Tela_Origem,

     Tela_Quitacao,

     Data_Emissao,

     Data_Quitacao,

     CodigoCliente,

     Data_Vencimento,

     NomeCliente,

     Valor_Total,

     CodigoPlanoContas1,

     Tipo_Recebido_Pago,

     NomePlanoContas1,

     Ordem

     SQL SELECT *

FROM "S9_Real".dbo."View_Contas_Receber"

where Data_Quitacao >= #10/07/2015 00:00:00#

Neves
15 Replies
Ribeiro
Specialist
Specialist
Author

Inserir um registro no banco de dados e não deu certo...

Neves
nicolett_yuri

Não entendi, pode explicar melhor?

Ribeiro
Specialist
Specialist
Author

Por que na hora de gerar o registro ele gerar duas vezes

Veja este exemplo abaixo são 413 mil registros

ele faz a comparação e dobrar para 827 mil registros.

E isto mesmo?

V27-05-2015 10-18-58.jpg

Neves
nicolett_yuri

Isso esta ocorrendo porque você esta fazendo uma releitura da tabela para pegar a maior data.

Sort_Movimento:  

LOAD *  

Resident Receber  

Order by Data_Quitacao;  

LET 'vUpdateDate' = Peek('Data_Quitacao', -1,'Sort_Movimento');  

DROP Table Receber;  

Neste caso você não precisa fazer um LOAD *, bastaria fazer um LOAD MAX(Data_Quitacao)

cesaraccardi
Specialist
Specialist

Ola Agnaldo,

So para confirmar se eu entendi corretamente o seu script.

Primeiro voce esta carregando os dados existentes em Receber.qvd:

Receber:

LOAD Tipo_Conta,

     Ordem_Plano_Contas3,

     CodigoFilial,

     NomeFilial,

     Pagar_Receber,

     Ano,

     Dia,

     Trimestre,

     Mes,

     AnoMes,

     Situacao,

     CodigoPlanoContas2,

     NomePlanoContas2,

     NomePlanoContas3,

     CodigoPlanoContas3,

     Data_Efetivado,

     Valor_Quitado,

     Exclui_DRE,

     Sequencia,

     Descricao,

     Tela_Origem,

     Tela_Quitacao,

     Data_Emissao,

     Data_Quitacao,

     CodigoCliente,

     Data_Vencimento,

     NomeCliente,

     Valor_Total,

     CodigoPlanoContas1,

     Tipo_Recebido_Pago,

     NomePlanoContas1,

     Ordem

FROM

(qvd);

Em seguida voce precisa identificar a ultima Data_Quitacao e esta fazendo um LOAD RESIDENT para poder ordenar os dados pelo campo Data_Quitacao:

Sort_Movimento:   

LOAD *   

Resident Receber   

Order by Data_Quitacao;   

LET 'vUpdateDate' = Peek('Data_Quitacao', -1,'Sort_Movimento');   

DROP Table Receber;   

Entao, conforme o Yuri apontou o LOAD RESIDENT esta duplicando os registros, eu acredito que voce pode contornar esse problema de duas formas:

1. Da forma que o Yuri sugeriu, utilizando LOAD MAX(Data_Quitacao) e nesse caso voce nao precisaria eliminar a tabela Receber:

Sort_Movimento:   

LOAD MAX(Data_Quitacao) as Max_Data_Quitacao  

Resident Receber   

Order by Data_Quitacao;   

LET 'vUpdateDate' = Peek('Max_Data_Quitacao', -1,'Sort_Movimento');   

2. Adicionar o parametro NOCONCATENATE na tabela Sort_Movimento:

Sort_Movimento:

NOCONCATENATE   

LOAD * Resident Receber   

Order by Data_Quitacao;   

LET 'vUpdateDate' = Peek('Max_Data_Quitacao', -1,'Sort_Movimento');   

DROP Table Receber;   

Seguindo o script, para a carga incremental eu acredito que neste caso voce queira concatenar ao qvd existente somente os dados onde a data de quitacao for maior que a maxima data existente em Receber.qvd:

Incremental:   

Concatenate(Receber)

LOAD Tipo_Conta,

     Ordem_Plano_Contas3,

     CodigoFilial,

     NomeFilial,

     Pagar_Receber,

     Ano,

     Dia,

     Trimestre,

     Mes,

     AnoMes,

     Situacao,

     CodigoPlanoContas2,

     NomePlanoContas2,

     NomePlanoContas3,

     CodigoPlanoContas3,

     Data_Efetivado,

     Valor_Quitado,

     Exclui_DRE,

     Sequencia,

     Descricao,

     Tela_Origem,

     Tela_Quitacao,

     Data_Emissao,

     Data_Quitacao,

     CodigoCliente,

     Data_Vencimento,

     NomeCliente,

     Valor_Total,

     CodigoPlanoContas1,

     Tipo_Recebido_Pago,

     NomePlanoContas1,

     Ordem;

     SQL SELECT *   

FROM "S9_Real".dbo."View_Contas_Receber"  

where Data_Quitacao >= '$(vUpdateDate)';  

Espero ter ajudado.


Cesar

Ribeiro
Specialist
Specialist
Author

Inserir um Registro para a comparação:

Conforme a ajuda do Yuri e do Cesar,

Gostaria de agradecer.

27-05-2015 13-23-46.jpg

Como ficou o script correto:

Receber:

LOAD Tipo_Conta,

     Ordem_Plano_Contas3,

     CodigoFilial,

     NomeFilial,

     Pagar_Receber,

     Ano,

     Dia,

     Trimestre,

     Mes,

     AnoMes,

     Situacao,

     CodigoPlanoContas2,

     NomePlanoContas2,

     NomePlanoContas3,

     CodigoPlanoContas3,

     Data_Efetivado,

     Valor_Quitado,

     Exclui_DRE,

     Sequencia,

     Descricao,

     Tela_Origem,

     Tela_Quitacao,

     Data_Emissao,

     Data_Quitacao,

     CodigoCliente,

     Data_Vencimento,

     NomeCliente,

     Valor_Total,

     CodigoPlanoContas1,

     Tipo_Recebido_Pago,

     NomePlanoContas1,

     Ordem

FROM

(qvd);

Sort_Movimento:  

LOAD MAX(Data_Quitacao) as Max_Data_Quitacao 

Resident Receber  

Order by Data_Quitacao;  

LET vUpdateDate = Date(Floor(Peek('Max_Data_Quitacao', -1,'Sort_Movimento') ), 'DD/MM/YYYY');

Incremental:  

Concatenate(Receber)

LOAD Tipo_Conta,

     Ordem_Plano_Contas3,

     CodigoFilial,

     NomeFilial,

     Pagar_Receber,      

     Situacao,

     CodigoPlanoContas2,

     NomePlanoContas2,

     NomePlanoContas3,

     CodigoPlanoContas3,

     Data_Efetivado,

     Valor_Quitado,

     Exclui_DRE,

     Sequencia,

     Descricao,

     Tela_Origem,

     Tela_Quitacao,

     Data_Emissao,

     Data_Quitacao,

     CodigoCliente,

     Data_Vencimento,

     NomeCliente,

     Valor_Total,

     CodigoPlanoContas1,

     Tipo_Recebido_Pago,

     NomePlanoContas1,

     Ordem;

     SQL SELECT *   

FROM "S9_Real".dbo."View_Contas_Receber"  

where Data_Quitacao >= '$(vUpdateDate)';   

Neves