15 Replies Latest reply: May 27, 2015 12:26 PM by Agnaldo Neves RSS

    O Erro NoConcatenate "QVD" Comparação.

    Agnaldo Neves

      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#

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

          Falta um ";"

          Ordem ;

               SQL SELECT *

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

              Clever Bom dia,

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

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

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

                  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

                  [C:\Padaria\Receber.qvd]

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

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

                      Altere esse trecho de código

                      where Data_Quitacao >= #$(vUpdateDate)#; 


                      para


                      where Data_Quitacao >= '$(vUpdateDate)'; 

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

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

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

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

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

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

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

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

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

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

                                          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

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

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

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

                                                Não entendi, pode explicar melhor?

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

                                                    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

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

                                                        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)

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

                                                            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

                                                            [C:\Padaria\Receber.qvd]

                                                            (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

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

                                                                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

                                                                [C:\Padaria\Receber.qvd]

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