Queries Prontas
Copia e usa
Todas as consultas que você vai precisar, testadas no banco, prontas pra rodar.
Empresas que são MEI
[1] Total de empresas MEI na base
SELECT COUNT(*) FROM empresas
WHERE natureza_juridica = '2135'[2] MEIs em Ipatinga (via estabelecimentos)
SELECT COUNT(*)
FROM estabelecimentos est
JOIN empresas emp ON est.cnpj_base = emp.cnpj_base
WHERE est.cidade = '4625'
AND emp.natureza_juridica = '2135'[3] MEIs em Ipatinga ativas na RFB
SELECT
est.cnpj_base || est.cnpj_ordem || est.cnpj_dv AS cnpj,
emp.razao_social,
est.situacao,
est.logradouro,
est.bairro
FROM estabelecimentos est
JOIN empresas emp ON est.cnpj_base = emp.cnpj_base
WHERE est.cidade = '4625'
AND emp.natureza_juridica = '2135'
AND est.situacao = '02' -- apenas ativasFiltros por município
[4] Todos os CNPJs de Ipatinga
SELECT * FROM estabelecimentos
WHERE cidade = '4625'[5] Descobrir código de um município
SELECT codigo, nome FROM municipios
WHERE nome ILIKE '%IPATINGA%'Situação cadastral
[6] Ativas × baixadas × suspensas em Ipatinga
SELECT
est.situacao,
CASE est.situacao
WHEN '02' THEN 'Ativa'
WHEN '03' THEN 'Inapta'
WHEN '04' THEN 'Baixada'
WHEN '08' THEN 'Suspensa'
ELSE 'Outra'
END AS situacao_desc,
COUNT(*) AS total
FROM estabelecimentos est
WHERE est.cidade = '4625'
GROUP BY est.situacao
ORDER BY total DESCCruzamento Ipatinga × RFB
[7] Dashboard principal — KPIs
WITH base AS (
SELECT DISTINCT ON (i.cpfcnpj)
i.cpfcnpj,
i.situacao AS sit_ipatinga,
e.situacao AS sit_receita,
e.cnpj_base IS NOT NULL AS tem_receita,
CASE WHEN UPPER(TRIM(i.logradouro)) = UPPER(TRIM(e.logradouro))
THEN 1 ELSE 0 END AS end_igual,
CASE WHEN i.bairro = e.bairro
THEN 1 ELSE 0 END AS bairro_igual,
CASE WHEN i.cep = e.cep
THEN 1 ELSE 0 END AS cep_igual
FROM ipatinga i
LEFT JOIN estabelecimentos e
ON LEFT(i.cpfcnpj, 8) = e.cnpj_base
AND SUBSTRING(i.cpfcnpj, 9, 4) = e.cnpj_ordem
AND RIGHT(i.cpfcnpj, 2) = e.cnpj_dv
WHERE i.situacao = 'Ativo'
)
SELECT
COUNT(*) AS total,
SUM(CASE WHEN tem_receita THEN 1 ELSE 0 END) AS com_receita,
SUM(CASE WHEN NOT tem_receita THEN 1 ELSE 0 END) AS sem_receita,
SUM(CASE WHEN sit_receita = '02' THEN 1 ELSE 0 END) AS ativas,
SUM(CASE WHEN sit_receita = '04' THEN 1 ELSE 0 END) AS baixadas,
SUM(CASE WHEN sit_receita = '08' THEN 1 ELSE 0 END) AS suspensas,
SUM(CASE WHEN sit_receita = '03' THEN 1 ELSE 0 END) AS inaptas,
SUM(end_igual) AS enderecos_ok,
SUM(bairro_igual) AS bairros_ok,
SUM(cep_igual) AS ceps_ok
FROM base[8] Cruzamento completo com tipo de empresa
SELECT
i.cpfcnpj,
i.situacao AS sit_ipatinga,
e.situacao AS sit_receita,
emp.natureza_juridica,
CASE emp.natureza_juridica
WHEN '2135' THEN 'É MEI'
WHEN '2062' THEN 'Ltda'
WHEN '2054' THEN 'SA'
WHEN '2240' THEN 'EIRELI'
ELSE 'Outro'
END AS tipo_empresa,
emp.razao_social,
i.logradouro AS end_ipatinga,
e.logradouro AS end_receita
FROM ipatinga i
LEFT JOIN estabelecimentos e
ON LEFT(i.cpfcnpj, 8) = e.cnpj_base
AND SUBSTRING(i.cpfcnpj, 9, 4) = e.cnpj_ordem
AND RIGHT(i.cpfcnpj, 2) = e.cnpj_dv
LEFT JOIN empresas emp ON e.cnpj_base = emp.cnpj_base
WHERE i.situacao = 'Ativo'
ORDER BY i.cpfcnpjDivergências
[9] Ativas em Ipatinga mas baixadas/suspensas na RFB
SELECT
i.cpfcnpj,
i.situacao AS sit_ipatinga,
e.situacao AS sit_receita,
CASE e.situacao
WHEN '04' THEN 'BAIXADA'
WHEN '08' THEN 'SUSPENSA'
WHEN '03' THEN 'INAPTA'
END AS problema
FROM ipatinga i
LEFT JOIN estabelecimentos e
ON LEFT(i.cpfcnpj, 8) = e.cnpj_base
AND SUBSTRING(i.cpfcnpj, 9, 4) = e.cnpj_ordem
AND RIGHT(i.cpfcnpj, 2) = e.cnpj_dv
WHERE i.situacao = 'Ativo'
AND e.situacao IN ('04', '08', '03')
ORDER BY e.situacao[10] Ativas em Ipatinga mas sem registro na RFB
SELECT i.cpfcnpj, i.situacao, i.logradouro
FROM ipatinga i
LEFT JOIN estabelecimentos e
ON LEFT(i.cpfcnpj, 8) = e.cnpj_base
AND SUBSTRING(i.cpfcnpj, 9, 4) = e.cnpj_ordem
AND RIGHT(i.cpfcnpj, 2) = e.cnpj_dv
WHERE i.situacao = 'Ativo'
AND e.cnpj_base IS NULL