Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Menor Valor da Raiz do CPFCNPJ

Boa tarde.

Estou criando um painel onde preciso informar a raiz do campo CPFCNPJ. A raiz consiste nos oito primeiros caracteres do campo CPFCNPJ. Até aqui tudo bem, já tenho o campo chamado CPFCNPJ_RAIZ.

EXEMPLO:

CPFCNPJ = 08.546.655/0001-54;

Raiz = 08546655;

Filial = 0001;

A questão é que com isso, ocorreu repetições pois tem empresas com várias filiais e conforme o gestor, basta que seja selecionado apenas o menor CPFCNPJ onde no caso é o chamado "mil de ré" no CNPJ exemplo apenas o 0001 resolveria o caso. Entretanto, nem todas as empresas cadastradas na base de dados tem o "mil de ré" (Nº da Filial), ou seja, tem vários outros valores nesta posição:

Raiz: 07954868

Filial: 0019    = CNPJ 07954868001955    

Filial: 0056    = CNPJ 07954868005634

Filial: 0194    = CNPJ 07954868019476

No caso acima, apenas o CNPJ 07954868001955, com diferencial 0019 deve ser carregado.

Como resolver isso via LOAD?

Grande abraço e obrigado.

1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Talvez atenda:

T:

LOAD * INLINE [

    CNPJ

    07954868001955    

    07954868005634

    07954868019476

];

LOAD

  LEFT(CNPJ,8) AS RAIZ,

  LEFT(MIN(RIGHT(CNPJ,6)),4) AS FILIAL

Resident T

gROUP BY LEFT(CNPJ,8)

View solution in original post

4 Replies
maiconmello
Creator III
Creator III

Você pode buscar left(cnpj,12) vai buscar as 12 primeiras posições.

Ou se quer carregar separado , mid(CNPJ,8,4) as Filial.

Atenciosamente

Clever_Anjos
Employee
Employee

Talvez atenda:

T:

LOAD * INLINE [

    CNPJ

    07954868001955    

    07954868005634

    07954868019476

];

LOAD

  LEFT(CNPJ,8) AS RAIZ,

  LEFT(MIN(RIGHT(CNPJ,6)),4) AS FILIAL

Resident T

gROUP BY LEFT(CNPJ,8)

Anonymous
Not applicable
Author

Grande Clever, muito obrigado.

Só fiz uma alteração na sua fórmula

T:

LOAD * INLINE [

    CNPJ

    07954868001955   

    07954868005634

    07954868019476

];

LOAD

  LEFT(CNPJ,8) AS RAIZ,

  MIN(MID(CNPJ,9,4)) AS FILIAL

Resident T

gROUP BY LEFT(CNPJ,8)

E funcionou direitinho.

Mais uma vez obrigado.

Anonymous
Not applicable
Author

Maicon, obrigado pela ajuda.

Mas eu já trago o falor da filial, que seria MID(CNPJ,9,4), mas isso não restringe a carga apenas para a raiz da matriz.

De qualquer forma, obrigado pela tentativa e atenção.