Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
mercadante
Contributor

Diferenciar Contrato Novo de Contrato Alterado

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

1 Solution

Accepted Solutions
mercadante
Contributor

Re: Diferenciar Contrato Novo de Contrato Alterado

Caros,

Obrigado pela ajuda de todos,

Mas a necessidade foi descontinuada.

Atte.

Mercadante

9 Replies

Re: Diferenciar Contrato Novo de Contrato Alterado

Não seria mais interessante gravar a data hora da foto tirada?

mercadante
Contributor

Re: Diferenciar Contrato Novo de Contrato Alterado

Eu gravo ela também,  mas não na chave

Re: Diferenciar Contrato Novo de Contrato Alterado

Quando o contrato é alterado, você deseja manter somente a última "versão" dele?

mercadante
Contributor

Re: Diferenciar Contrato Novo de Contrato Alterado

Não, eu quero manter todas as alterações.

Por exemplo, tenho um campo que a data do cancelamento por inadimplência. Essa data pode ser preenchida varias vezes.

Então vou ter todo o histórico deste contrato.

Neste modelo de código que postei, ele funciona mas duplica quando o contrato tem alteração.

Vou dar um exemplo

contrato 0001 foi cadastrado dia 01/01/2015 e a data de cancelamento = null().

Na carga ele vai mostrar uma vez esse contrato com o tipo carga = Contrato Novo

Se o campo data de cancelamento for alterado " Neste caso ele entraria no segundo concatenate do código" ele fica assim

contrato 0001  cadastro 01/01/2015 Data de Cancelamento Null() tipo carga = contrato novo

contrato 0001  cadastro 01/01/2015 Data de Cancelamento Null() tipo carga = contrato novo

contrato 0001  cadastro 01/01/2015 Data de Cancelamento 24/01/2015 tipo carga = contrato alterado

contrato 0001  cadastro 01/01/2015 Data de Cancelamento 24/01/2015 tipo carga = contrato alterado


Sendo que deveria ser somente duas linhas.


contrato 0001  cadastro 01/01/2015 Data de Cancelamento Null() tipo carga = contrato novo

contrato 0001  cadastro 01/01/2015 Data de Cancelamento 24/01/2015 tipo carga = contrato alterado


Re: Diferenciar Contrato Novo de Contrato Alterado

Então acredito que você deva apenas ficar acumulando as linhas.

Como você sabe se o contrato teve alteração?

mercadante
Contributor

Re: Diferenciar Contrato Novo de Contrato Alterado

Pelo campo [tipo carga]

Re: Diferenciar Contrato Novo de Contrato Alterado

Eu acho que você pode manter todo o histórico e depois ir removendo as linhas e deixando somente o status que desejar.

O problema disso é o seguinte, quais são os campos que você verifica se teve alteração no contrato? somente o data de cancelamento?

MVP
MVP

Re: Diferenciar Contrato Novo de Contrato Alterado

Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada

mercadante
Contributor

Re: Diferenciar Contrato Novo de Contrato Alterado

Caros,

Obrigado pela ajuda de todos,

Mas a necessidade foi descontinuada.

Atte.

Mercadante