Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Filtrar dados em dois campos com a mesma informação

Pessoal, tenho aqui a tabela CODDOCTO.

Nessa tabela tenho o campo CODDOCTOCRCSUBST, e o campo CODDOCTOCRC.

CODDOCTOCRCSUBSTCODDOCTOCRCCODCLI
22610729
2261022099

729

33000120
42889378

Tenho outra tabela que guarda os valores do documento que é a CRCITDOC, com o campo CODDOCTOCRC que é o campo chave.

VALORITEMDOCCODDOCTOCRC
283,3422099
283,3422610
100,0033000
95,0042889

Conforme a tabela acima o a campo CODDOCTOCRCSUBST só tem dado quando ele substitui um documento da CODDOCTOCRC. No meu select ele está considerando tudo da tabela CODDOCTOCRC, porém preciso de apenas uma vez o valor desse campo já que o documento foi substituido. 


O documento 22610 foi substituído pelo 22099, então seu valor é 283,34 e não esse mesmo valor 2x 283,34.


Os outros documentos 3300 e 42889 não tiveram substiuição, levarei o valor deles também.


Como faço para levar corretamente na minha transformação?


Qualquer duvida eu posso tentar ser mais claro.


Obrigado.



Labels (2)
5 Replies
nicolett_yuri

Diego, se esse registro que foi substituído não é mais importante ao seu modelo, sugiro remove-lo e deixar somente o atual.

Exemplo de código:

Documentos_Substituidos:

LOAD

  DISTINCT

  CODDOCTOCRCSUBST as CODDOCTOCRC

FROM CODDOCTO

WHERE LEN(TRIM(CODDOCTOCRCSUBST ))>0;

Tabela:

LOAD

  IF(LEN(TRIM(CODDOCTOCRCSUBST))>0, CODDOCTOCRCSUBST, CODDOCTOCRC) as CODDOCTOCRC,

  CODCLI

FROM CODDOCTO

WHERE

NOT Exists(CODDOCTOCRC);


DROP TABLE Documentos_Substituidos;

Anonymous
Not applicable
Author

Yuri, eu estava querendo fazer com IF, estava a manhã toda na labuta aqui.

Do jeito que você falou sobre descartar os que foram substituidos não é uma má ideia, já que quero tratar a inadimplência. Em um segundo momento eu amarro o campo CODDOCTOCRC a tabela onde tem as notas sem problemas.

Meu Script está assim na transformação.

LOAD

    CODIGOEMPRESA,

    CODCLI,

    CODDOCTOCRCSUBST,

    CODDOCTOCRC,

    NRODOCTOCRC,

    EMISSAOCRC,  

    DESCONTOCRC,

    ACRESCIMOCRC,

    VENCIMENTOCRC,

    QUITADODOCTOCRC,

    STATUSDOCTOCRC

FROM [lib://Caminho Qvds Inadimplência (np_administrador)/CRCDOCTO.QVD](qvd)

WHERE STATUSDOCTOCRC <> 'C' ;

Left join (CRCDOCTO)

LOAD

   CODDOCTOCRC,

  VALORITEMDOC

FROM [lib://Caminho Qvds Inadimplência (np_administrador)/CRCITDOC.QVD](qvd);

Seção Drop:

STORE CRCDOCTO into [lib://Qvds Transf Inadim (np_administrador)/CRCDOCTO .QVD];

Drop table CRCDOCTO ;

nicolett_yuri

Então utilize a lógica que te passei que vai te atender

Anonymous
Not applicable
Author

Tentei da primeira maneira que me falou, mas ele enxugou tudo, até outros dados vitais.

Então tentei assim:

LOAD

    IF(LEN(TRIM(CODDOCTOCRCSUBST))>0, CODDOCTOCRCSUBST, CODDOCTOCRC) as CODDOCTOCRC,

    CODIGOEMPRESA,

    CODCLI,

    NRODOCTOCRC,

    EMISSAOCRC,  

    DESCONTOCRC,

    ACRESCIMOCRC,

    VENCIMENTOCRC,

    QUITADODOCTOCRC,

    STATUSDOCTOCRC

FROM [lib://Caminho Qvds Inadimplência (np_administrador)/CRCDOCTO.QVD](qvd)

WHERE NOT Exists(CODDOCTOCRC)

and STATUSDOCTOCRC <> 'C';

Left join (CRCDOCTO)

LOAD

   CODDOCTOCRC,

  VALORITEMDOC

FROM [lib://Caminho Qvds Inadimplência (np_administrador)/CRCITDOC.QVD](qvd);

Porém ainda não cheguei no resultado preciso, ele está trazendo do mesmo jeito os dois documentos, tanto o original quanto o substituído.

Anonymous
Not applicable
Author

Boletos Substituidos.jpg

Um exemplo de como está no meu banco. Para facilitar.

Veja que o VERDE é o documento original e o amarelo é o documento de substituição. O problema é que ele cria o documento de substituição nos dois campos.