Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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#
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
Falta um ";"
Ordem ;
SQL SELECT *
Clever Bom dia,
Agora ele está carregando duas vezes e aparecendo este erro.
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)#;
Altere esse trecho de código
where Data_Quitacao >= #$(vUpdateDate)#;
para
where Data_Quitacao >= '$(vUpdateDate)';
Veja o ano esta correto, pois comentei e esta ok.
O erro agora é que a coluna Ano não existe na sua tabela "S9_Real".dbo."View_Contas_Receber"
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.
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)';
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');
E assim mesmo ele gerar duas vezes a comparação do qvd com o banco.
Só tem 413 registros ele está dobrando...