9 Replies Latest reply: Jun 24, 2016 6:57 AM by Antonio Mercadante RSS

    Diferenciar Contrato Novo de Contrato Alterado

    Antonio Mercadante

      Srs.

       

      Boa tarde!

       

      Criei um qvd que armazena uma foto diária através da validação de uma chave na clausula Where.

      Porem agora tenho contratos duplicados, então me deparei com a necessidade de distinguir contratos novos dos contratos alterados.

      Pensei em fazer da seguinte forma.

       

      Carrego um qvd original.

       

      Apos esta carga concateno um novo select onde o numero do contato not existis. Desta forma ele concatena os contratos que não existirem.

       

      Agora concateno novamente onde as datas not existis. Desta forma ele concatena os contratos que tiveram alteração de datas.

      Abaixo segue um exemplo do código que criei.

       

      Porem onde esta o problema

       

      Quanto tenho um contrato que foi alterado ele grava o mesmo duas vezes como novo e duas vezes como Contrato Novo e duas vezes como Contrato Alterado.

       

      Alguem pode me ajudar ?

       

      //-----------------------------

      [Base]:

      load

           [tipo da carga]

           chave_inclusao

           chave_alteracao

           numero do contrato

           data1

           data2

           data3

           nome do cliente

           endereço

      from

           [base.qvd]

      (qvd);

      //-----------------------------

       

      concatenate (Base)

           'Contrato Novo' as [tipo da carga]

           chave_inclusao

           chave_alteracao

           numero do contrato

           data1

           data2

           data3

      where

           not existis ('chave_inclusao',numero do contrato);

       

      sql

      select

           numero do contrato as chave_inclusao

           data1 ||'|'|| data2 ||'|'|| data3 as chave_alteracao

            numero do contrato

           data1

           data2

           data3

           nome do cliente

           endereço

      from

           <Tabela>;

      //-----------------------------

      concatenate (Base)

           'Contrato Alterado' as [tipo da carga]

           chave_inclusao

           chave_alteracao

           numero do contrato

           data1

           data2

           data3

      where

           not existis ('chave_alteracao',data1 &'|'& data2 &'|'& data3);

       

      sql

      select

           numero do contrato as chave_inclusao

           data1 ||'|'|| data2 ||'|'|| data3 as chave_alteracao

            numero do contrato

           data1

           data2

           data3

           nome do cliente

           endereço

      from

           <Tabela>;