Hoje vou mostrar um exemplo de uma query, trazendo todos os municípios e estados através da CC2 e SX5 no Protheus.
O Protheus possui as famosas tabelas autocontidas, que são tabelas que os registros são populados / criados, automaticamente pelo sistema.
Uma dessas tabelas é a CC2, que possui todos as cidades do Brasil. Porém, o código da cidade (CC2_CODMUN), não tem a sigla do estado (os dois primeiros caracteres), então as vezes isso pode acabar confundindo caso você procure pelo código do IBGE na internet.
Então usando como referência esse link https://www.ibge.gov.br/explica/codigos-dos-municipios.php , decidi montar uma query que já traz o código do IBGE formatado. Abaixo um print do resultado:
E abaixo a query desenvolvida:
SELECT CC2_EST AS SIGLA_ESTADO, X5_DESCRI AS ESTADO, CC2_CODMUN AS CODIGO_MUN, CC2_MUN AS MUNICIPIO, (CASE WHEN CC2_EST='AC' THEN '12' WHEN CC2_EST='AL' THEN '27' WHEN CC2_EST='AM' THEN '13' WHEN CC2_EST='AP' THEN '16' WHEN CC2_EST='BA' THEN '29' WHEN CC2_EST='CE' THEN '23' WHEN CC2_EST='DF' THEN '53' WHEN CC2_EST='ES' THEN '32' WHEN CC2_EST='GO' THEN '52' WHEN CC2_EST='MA' THEN '21' WHEN CC2_EST='MG' THEN '31' WHEN CC2_EST='MS' THEN '50' WHEN CC2_EST='MT' THEN '51' WHEN CC2_EST='PA' THEN '15' WHEN CC2_EST='PB' THEN '25' WHEN CC2_EST='PE' THEN '26' WHEN CC2_EST='PI' THEN '22' WHEN CC2_EST='PR' THEN '41' WHEN CC2_EST='RJ' THEN '33' WHEN CC2_EST='RN' THEN '24' WHEN CC2_EST='RO' THEN '11' WHEN CC2_EST='RR' THEN '14' WHEN CC2_EST='RS' THEN '43' WHEN CC2_EST='SC' THEN '42' WHEN CC2_EST='SE' THEN '28' WHEN CC2_EST='SP' THEN '35' WHEN CC2_EST='TO' THEN '17' ELSE 'ERRO - ' END) + CC2_CODMUN AS CODIGO_IBGE FROM CC2990 CC2 INNER JOIN SX5990 SX5 ON ( X5_FILIAL = '' AND X5_TABELA = '12' AND X5_CHAVE = CC2_EST AND SX5.D_E_L_E_T_ = ' ' ) WHERE CC2.CC2_FILIAL = ' ' --AND CC2_MUN = 'BAURU' AND CC2.D_E_L_E_T_ = ' ' ORDER BY SIGLA_ESTADO, MUNICIPIO
Bom pessoal, por hoje é só.
Abraços e até a próxima.