Skip to main content
Announcements
YOUR OPINION MATTERS! Please take the Qlik Experience survey you received via email. Survey ends June 14.
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