Ajuda com SQL de uma consulta de CNPJs

Boa tarde meus colegas estou com uma dificuldade com o sql para uma aplicação no SC, onde preciso que um grupo de IDs seja substituido pelas descrições da tabaela de CNAEs, algum dos colegas poderia me ajudar por favor?

// este é o sql que estou tentando mas sem sucesso
SELECT
GLOSS.cnpj,
GROUP_CONCAT(DISTINCT CNAE.descricao SEPARATOR ', ') AS atividades
FROM
empresa GLOSS INNER JOIN tab_cnae CNAE
ON GLOSS.id_cnae = CNAE.codigo
WHERE GLOSS.cnpj = GLOSS.cnpj
GROUP BY GLOSS.cnpj;

Tabela tab_cnae exemplo
CODIGO…DESCRICAO
‘3292202’, ‘Fabricação de equipamentos e acessórios para segurança pessoal e profissional’
‘3299099’, ‘Fabricação de produtos diversos não especificados anteriormente’
‘3314709’, ‘Manutenção e reparação de máquinas de escrever, calcular e de outros equipamentos não-eletrônicos para escritório’
‘3329501’, ‘Serviços de montagem de móveis de qualquer material’
‘7319002’, ‘Promoção de vendas’
‘8599605’, ‘Cursos preparatórios para concursos’
‘9529105’, ‘Reparação de artigos do mobiliário’
‘9700500’, ‘Serviços domésticos’

tabela empresa de exemplo
…CNPJ…ID_CNAE
‘461xxxxxxxx101’, ‘3329501’
‘461xxxxxxxx100’, ‘3314709,9529105,3329501’
‘461xxxxxxxx150’, ‘3299099,9700500’
‘461xxxxxxxx143’, ‘7319002,8599605,3292202’

Onde os ids dos CNAEs separados por visgula são subistituidos pelo CNAE.descricao.

Desde já muito obrigado.

@adriano_php, tirando a estranhesa da clásula WHERE, o seu código me parece correto, apesar de correr o risco de ter vírgula na descrição do CNAE, quebrando o conceito do separador como vírgula, o que pode fácilmente ser corrigido pelo REPLACE na descrição do CNAE.

1 Curtida

Fala mister Haroldo, muito obrigado desde já pelo retorno, o estranho é que ao fazer a consulta esta dando sem resultado ou incorreto.

...
FROM
empresa GLOSS INNER JOIN tab_cnae CNAE
ON  concat(',',GLOSS.id_cnae,',') like concat('%,',CNAE.codigo,',%')
...

id_cnae não é um campo com valor único por isso não esta funcionando.

Show vou testar agora, muito obrigado

Teste feito e funcional top muito obrigado. Apenas mais uma ajuda, pois como são muitos registros ficou super demorado para obtenção do resultado da consulta. Assim teria uma forma de fazer a consultar ser mais rápida?

Transformar id_cnae em índice.
Deixar a consulta como parcial com 15 a 20 linhas (o limit será aplicado retornando poucas linhas a cada paginação).

2 Curtidas

Muito obrigado pelas sugestões.

2 Curtidas

Dê um feedback sobre as sugestões e se resolveu o problema altere o título incluindo RESOLVIDO::

1 Curtida

Olá camarada Haroldo, muito obrigado por perguntar, amanha minha meta é finalizar ai já trarei as novidades.