Exemplo de query pegando os Municípios e Estados pelo Protheus

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:

Resultado da query

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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação