Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: SQL e a Teoria de Conjuntos

_Créditos das imagens: Grok ### 🚀 Você sabia? SQL e a Teoria de Conjuntos estão mais conectados do que imagina! A linguagem SQL (Structured Query Language) tem suas raízes na teoria de conjuntos, um conceito matemático que trata de coleções de objetos. Em bancos de dados relacionais, cada tabela é um conjunto de linhas (ou tuplas), e operações como SELECT, JOIN, UNION e INTERSECT são inspiradas em operações como união (∪), interseção (∩) e diferença (-). Vamos explorar como isso funciona? 👇 --- ### 🔍 Principais Operações de Conjuntos no SQL Imagine duas tabelas simples: Clientes (Conjunto A): ``` +----+-------+ | ID | Nome | +----+-------+ | 1 | Ana | | 2 | João | | 3 | Maria | +----+-------+ ``` Pedidos (Conjunto B): ``` +----+-----------+ | ID | Cliente_ID| +----+-----------+ | 1 | 1 | | 2 | 2 | | 3 | 1 | +----+-----------+ ``` #### 1. União (UNION) - O que faz: Junta tudo de A e B, sem duplicatas (A ∪ B). - Exemplo: ```sql SELECT id FROM cli...

Protheus :: Advpl :: Google maps :: Localizando o endereço mais próximo

Tempos atrás alguém me pediu uma ajuda para resolver um problema da Kasinski: Enviar, a seus clientes, carta informando sobre o “Recall” de suas motos contendo, no máximo, o endereço de três concessionárias próximas à sua localidade (CEP).

Bastou entender a regra de formação do CEP e o problema foi facilmente resolvido. Ia usar a carta como exemplo, mas, como perdi o contato com a pessoa, reescrevi o código, agora usando o Google maps.

A idéia básica é a seguinte: Informe o CEP de sua localidade e encontre o(s) endereço(s) mais próximo(s). Para o “Recall” da Kasinski havia usado o Código de Endereçamento Postal das Concessionárias. No exemplo que segue, e, considerando que se trata de ADVPL, vou usar alguns endereços da TOTVS (obtidos a partir do link canais).

Vamos imaginar o seguinte. Estou na Rua São João, no Centro de Niterói (CEP 24020-040) , e quero achar a TOTVS mais próxima. Informo o meu CEP e…

image

image

Se encontrei correspondente(s)…

image

Apresento(-os). O mais próximo na Cidade do Rio de Janeiro e no Mesmo Estado

image

e, como segunda opção… Vitória, no Espírito Santo.

image

Os Códigos de Endereçamentos Postais de referência, estão, no exemplo, armazenados em um arquivo CSV delimitado por “|” (pipe), mas poderiam ser uma Tabela do sistema, um arquivo XML ou qualquer outra forma de armazenamento.

No exemplo anterior, considerando que estava em Niterói, uma cidade do Rio de Janeiro, o endereço mais próximo era a TOTVS/Microsiga Rio. Imaginando, agora, que a minha localidade é em algum lugar de São José do Rio Preto (SP) cujo CEP seja 15015-000, qual a TOTVS mais próxima? Vamos procurar.

image

image

Vou encontrar  três endereços. O mais próximo em São José do Rio Preto

image

o segundo, pela ordem de proximidade e considerando a regra de formação do CEP em Campinas

image

e finalmente, e, bem distante, em São José dos Campos.

image

O Algoritmo para a localização do CEP, baseado nas regras dos Correios, é bem simples:

image

Para obter o código completo, clique aqui

As dependências para o funcionamento do exemplo poderão ser obtidas em:

Protheus :: Herança de Classe em Advpl ( Derivando fTdb à partir da classe fT ) : para a Classe fTdb e;

Protheus :: ADVPL : Class TFINI Manipulando valores de um arquivo de configuração (*.INI): para a Classe TFINI.

[]s

иαldσ dj

Comentários

  1. Não consegui baixar, parece que googleDocs mudou algo!!

    ResponderExcluir
  2. O link estava "quebrado". Corrigi o mapeamento do arquivo para "Download" e aproveitei a deixa para incrementar a função de busca de CEP uma vez que a primeira versão que apresentei era, digamos, "Tendenciosa".

    []s

    иαldσ dj

    ResponderExcluir
  3. Agora sim,
    mostra a cobra e mata o pau!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas