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
1 Solution

Accepted Solutions
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

View solution in original post

15 Replies
Clever_Anjos
Employee
Employee

Falta um ";"

Ordem ;

     SQL SELECT *

Ribeiro
Specialist
Specialist
Author

Clever Bom dia,

Agora ele está carregando duas vezes e aparecendo este erro.

27-05-2015 10-01-45.jpg

Neves
Ribeiro
Specialist
Specialist
Author

O Script Todo:

OLEDB CONNECT32 TO [Provider=SQLOLEDB.1;Password=Senha123;Persist Security Info=True;User ID=sa;Initial Catalog=S9_Real;Data Source=localhost\shopcontrol9;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AGNALDO-17;Use Encryption for Data=False;Tag with column collation when possible=False];

//Receber:

//LOAD "Tipo_Conta",

//    "Ordem_Plano_Contas3",

//    CodigoFilial,

//    NomeFilial,

//    "Pagar_Receber",

//     Year(Data_Quitacao) as [Ano],

//   day (Data_Quitacao) as [Dia],

//  ceil(Month(Data_Quitacao)/3)&'Trim' as [Trimestre], 

//  Month(Data_Quitacao) as [Mes],

//  WeekName(Data_Quitacao) AS [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";

//

//store Receber into Receber.qvd(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);

Sort_Movimento:   

LOAD *   

Resident Receber   

Order by Data_Quitacao;   

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

DROP Table Receber;   

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 >= #$(vUpdateDate)#;  

Neves
nicolett_yuri

Altere esse trecho de código

where Data_Quitacao >= #$(vUpdateDate)#; 


para


where Data_Quitacao >= '$(vUpdateDate)'; 

Ribeiro
Specialist
Specialist
Author

Veja o ano esta correto, pois comentei e esta ok.

27-05-2015 10-11-21.jpg

Neves
nicolett_yuri

O erro agora é que a coluna Ano não existe na sua tabela "S9_Real".dbo."View_Contas_Receber"

Ribeiro
Specialist
Specialist
Author

Tirei o ano, Mês, trimestre e etc.. que não estava na tabela.

Não está aparecendo erro. Mas ele demora e gerar assim.

E não está gerando dados nenhum.

27-05-2015 10-18-58.jpg27-05-2015 10-21-45.jpg

Incremental:   

NoConcatenate  

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
nicolett_yuri

Quanto a demora não temos como analisar, mas você pode verificar se existe um indice nesta coluna "Data_Quitacao".

Se o seu select não esta retornando nenhuma informação, então pode ser que realmente não existe registros em que a Data_Quitacao seja maior ou igual a data informada na variável, ou então seu banco não esta conseguindo interpretar o valor informado.

Tente deixar a variável somente com DD/MM/YYYY sem a hora/minuto/segundo.

Altere a sua variável dessa forma:

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

Ribeiro
Specialist
Specialist
Author

E assim mesmo ele gerar duas vezes a comparação do qvd com o banco.

Só tem 413 registros ele está dobrando...

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

Neves