Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Varios CNPJ em um unico CNPJ raiz, com um nome somente

Bom dia,

Tenho uma tabela de NF emitidas, onde tenho alguns clientes com mais de uma unidade, ou seja, ele tem o mesmo CNPJ raiz, mas varias filiais. Eu ate consigo juntar os CNPJ raiz em um unico, usando LEFT(CNPJ,8) AS CNPJ RAIZ.

A duvida é, como consigo dar um nome para este CNPJ que é um numero? Segue base abaixo, e como gostaria que ficasse

cnpj.png

o campo CNPJ RAIZ teria que ficar "02916265 - JBS"

Alguem consegue me ajudar?

1 Solution

Accepted Solutions
Thiago_Justen_

Usa o mapping load e o applymap como indicado pelo Murilo pois acho que no teu caso é a melhor solução.

CNPJRaiz:

MAPPING LOAD

     LEFT(CNPJ,8)          AS CNPJRaiz,

    ClientePagador  

   FROM [Tabela dos pagadores];

e depois na tabela onde deva existir os pagamentos você usuaria

LEFT(CNPJ,8) & ' - ' & ApplyMap('CNPJRaiz', LEFT(CNPJ,8) ,'CNPJ pagar não existente') As [Cliente Pagador];

//aqui você pode fazer o concatenamento

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

6 Replies
makoprovski
Partner - Contributor II
Partner - Contributor II

Uma opção seria carregar o CNPJ RAIZ  e CLIENTE PAGADOR em um MAPPING

No load faria uma APPLY MAP

Exemplo:

CNPJRaiz:

MAPPING LOAD

     LEFT(CNPJ,8)          AS CNPJRaiz,

    ClientePagador   

   FROM [Tabela dos pagadores];

e depois na tabela onde deva existir os pagamentos você usuaria

ApplyMap('CNPJRaiz', LEFT(CNPJ,8) ,'CNPJ pagar não existente') As [Cliente Pagador];



Thiago_Justen_

A ideia do Murilo é bacana...

Mas se você só quer concatenar o nome do cliente com o CNPJ Raiz, bastaria fazer:

LEFT(CNPJ,8)  & ' - ' & CLIENTE as CNPJ_RAIZ_NOME

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

O problema é que o CLIENTE, pode ter grafia diferente em cada linha da minha tabela, dai não consigo juntar este campo. Pois vão parecer que são clientes diferentes.

Anonymous
Not applicable
Author

LOAD [1],

     CTRC,

     [Numero CT-e],

     [Tipo do Documento],

     [Praca Expedidora],

     [Unidade Emissora],

     [Data de Emissao],

     [Hora de Emissao],

     [Data de Autorizacao],

     [Hora de Autorizacao],

     Login,

     [Numero de Controle],

     [Placa de Coleta],

     [Chave CTe],

     [CNPJ Remetente],

     [Cliente Remetente],

     [Endereco do Remetente],

     [Bairro do Remetente],

     [Setor de Coleta],

     [Cidade do Remetente],

     [UF do Remetente],

     [CEP do Remetente],

     [CNPJ Expedidor],

     [Cliente Expedidor],

     [Cidade do Expedidor],

     [UF do Expedidor],

     [CNPJ Pagador],

     [Cliente Pagador],

     [Endereco do Pagador],

     [Bairro do Pagador],

     [Cidade do Pagador],

     [UF do Pagador],

     [Fone do Pagador],

     [Segmento do Pagador],

     [CNPJ Destinatario],

     [Cliente Destinatario],

     [Endereco do Destinatario],

     [Bairro do Destinatario],

     [Setor de Destino],

     [Praca de Destino],

     [Cidade do Destinatario],

     [UF do Destinatario],

     [CEP do Destinatario],

     [Fone do Destinatario],

     [CNPJ Recebedor],

     [Cliente Recebedor],

     [Cidade de Entrega],

     [UF de Entrega],

     [CEP de Entrega],

     [Unidade Receptora],

     CFOP,

     [Numero da Nota Fiscal],

     [Peso Real em Kg],

     [Cubagem em m3],

     [Quantidade de Volumes],

     [Quantidade de Pares],

     [Tipo do Frete],

     [Tipo de Baixa],

     [Data da Liquidacao],

     [Valor Liquidado],

     Mercadoria,

     Especie,

     [Valor da Mercadoria],

     [Tipo de Calculo],

     [Tabela de Calculo],

     [Valor do Frete],

     [Valor do Frete sem ICMS],

     [Base de Calculo],

     [Valor do ICMS],

     Aliquota,

     [Valor do ISS],

     [Peso Calculado em Kg],

     Modalidade,

     [Primeiro Manifesto],

     [Data do Primeiro Manifesto],

     [Placa do Cavalo],

     [Placa da Carreta],

     [Conferente de Carga],

     [Conferente de Descarga],

     [Ultimo Manifesto],

     [Data do Ultimo Manifesto],

     [Ultimo Romaneio],

     [Data do Ultimo Romaneio],

     [Placa de Entrega],

     [Codigo da Ultima Ocorrencia],

     [Data de inclusao da Ultima Ocorrencia],

     [Data da Ultima Ocorrencia],

     [Unidade da Ultima Ocorrencia],

     [Descricao da Ultima Ocorrencia],

     [Previsao de Entrega],

     [Entrega Programada],

     [Data da Entrega Realizada],

     [Quantidade de Dias de Atraso],

     [Localizacao Atual],

     [Data do Cancelamento],

     [Motivo do Cancelamento],

     [Codigo dos Correios],

     [CTRC Origem],

     [CTe Origem],

     [Valor do Frete do CTRC Origem],

     [Valor do ICMS origem],

     [Valor da Comissao de Expedicao],

     [Rel de Comissao de Expedicao],

     [Resultado Minimo %],

     [Resultado Real PEDAGIO],

     [Resultado Real TRANFERENCIA],

     [Resultado Real R$],

     [Resultado Real %],

     Vendedor,

     [Rel de Comissao de Vendedor],

     [Valor Comissao Vendedor],

     Pedagio,

     TDE,

     Observacao,

     [Distancia em Km],

     [Conferente de Coleta],

     Complemento,

     date([Data de Emissao]) as Dia,

     month([Data de Emissao]) as Mes,

     year([Data de Emissao]) as Ano,

     Left([CNPJ Destinatario],8) as "CNPJ Raiz Destinatario",

     Left([CNPJ Remetente],8) as "CNPJ Raiz Remetente",

     Left([CNPJ Pagador],8) as "CNPJ Raiz Pagador"     

FROM

(ooxml, embedded labels);


Este é meu Script, como ficaria?

Onde coloco este codigo?

Thiago_Justen_

Usa o mapping load e o applymap como indicado pelo Murilo pois acho que no teu caso é a melhor solução.

CNPJRaiz:

MAPPING LOAD

     LEFT(CNPJ,8)          AS CNPJRaiz,

    ClientePagador  

   FROM [Tabela dos pagadores];

e depois na tabela onde deva existir os pagamentos você usuaria

LEFT(CNPJ,8) & ' - ' & ApplyMap('CNPJRaiz', LEFT(CNPJ,8) ,'CNPJ pagar não existente') As [Cliente Pagador];

//aqui você pode fazer o concatenamento

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Thiago, perfetio. Deu certo.


Segue script:


CNPJRaizRemetente:

MAPPING LOAD

LEFT([CNPJ Remetente],8) AS [CNPJRaiz Remetente],

    [Cliente Remetente] 

    FROM

(ooxml, embedded labels);


CNPJRaizDestinatario:

MAPPING LOAD

LEFT([CNPJ Destinatario],8) AS [CNPJRaiz Destinatario],

    [Cliente Destinatario] 

    FROM

(ooxml, embedded labels);


CNPJRaizPagador:

MAPPING LOAD

LEFT([CNPJ Pagador],8) AS [CNPJRaiz Pagador],

    [Cliente Pagador] 

    FROM

(ooxml, embedded labels);

Depois no LOAD ficou assim


LEFT([CNPJ Destinatario],8) & ' - ' & ApplyMap('CNPJRaizDestinatario', LEFT([CNPJ Destinatario],8) ,'CNPJ pagar não existente') As [CNPJ Cliente Destinatario],

     LEFT([CNPJ Remetente],8) & ' - ' & ApplyMap('CNPJRaizRemetente', LEFT([CNPJ Remetente],8) ,'CNPJ pagar não existente') As [CNPJ Cliente Remetente],

     LEFT([CNPJ Pagador],8) & ' - ' & ApplyMap('CNPJRaizPagador', LEFT([CNPJ Pagador],8) ,'CNPJ pagar não existente') As [CNPJ Cliente Pagador]

FROM

(ooxml, embedded labels);

Uma ultima pergunta, tem como otimizar o MAPLOAD que eu fiz? Pois ele faz 3 cargas em vez de uma.