Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
ribeironeves
Valued Contributor

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#

Agnaldo Neves
Tags (1)
1 Solution

Accepted Solutions
cesaraccardi
Valued Contributor

Re: O Erro NoConcatenate "QVD" Comparação.

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

15 Replies
Employee
Employee

Re: O Erro NoConcatenate "QVD" Comparação.

Falta um ";"

Ordem ;

     SQL SELECT *

ribeironeves
Valued Contributor

Re: O Erro NoConcatenate "QVD" Comparação.

Clever Bom dia,

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

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

Agnaldo Neves
ribeironeves
Valued Contributor

Re: O Erro NoConcatenate "QVD" Comparação.

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)#;  

Agnaldo Neves

Re: O Erro NoConcatenate "QVD" Comparação.

Altere esse trecho de código

where Data_Quitacao >= #$(vUpdateDate)#; 


para


where Data_Quitacao >= '$(vUpdateDate)'; 

ribeironeves
Valued Contributor

Re: O Erro NoConcatenate "QVD" Comparação.

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

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

Agnaldo Neves

Re: O Erro NoConcatenate "QVD" Comparação.

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

ribeironeves
Valued Contributor

Re: O Erro NoConcatenate "QVD" Comparação.

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)';   

Agnaldo Neves

Re: O Erro NoConcatenate "QVD" Comparação.

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');

ribeironeves
Valued Contributor

Re: O Erro NoConcatenate "QVD" Comparação.

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

Agnaldo Neves