1
resposta

[Dúvida] COMPARAR DADOS DE UMA TABELA E PRIORIZAR

Tenho um código em Python que busca duas consultas de dois bancos de dados diferentes, porém com colunas semelhantes “ E preciso comparar os dados semelhantes entre as tabelas e selecionar e enviar para uma tabela aquele alimentador (‘SUB': 'ABA', 'ALIM': '01F7','): que está com maior diferença entre as duas.

'SUB': 'ABA', 'ALIM': '01F7', 'G2M': True, 'TRECHO': 1000, TRAFO': 100, ‘CHAVE': 90, 'REGULADOR': 0, ‘UC': 8000, 'OPER': True, ‘TRECHO': 300, 'TRAFO': 10, 'CHAVE': 9, 'REGULADOR': 0, 'UC': 2500, 'TRECHO_MANOBRA': 'N', 'EQUIP_MANOBRA': 'N', 'DIAS': 11}

Exemplo da consulta listada acima! Preciso enviar para uma tabela essa informação - 'SUB': 'ABA', 'ALIM': '01F7',, esse alimentador precisa ser atualizado, e não posso agendar aqueles que estão com o status’ S’ 'TRECHO_MANOBRA': 'N', 'EQUIP_MANOBRA': 's'

1 resposta

Oi, Eduardo, como vai?

Peço desculpas pelo tempo que aguardou por uma resposta.

Como não tenho informações acerca do código que você está desenvolvendo e dos bancos de dados utilizados, estarei trazendo apenas uma sequência lógica de passos que você poderá se basear para resolver o seu problema, observe:

  1. Para trabalhar com os registros dos bancos de dados, você pode armazená-los em estruturas (collections) como listas ou dicionários;

  2. A partir dessas collections, você pode fazer iterações para comparar as linhas de cada tabela, de acordo com 'SUB' e 'ALIM'. Utilize condicionais (if e else) para verificar as diferenças entre os registros semelhantes;

  3. Ao comparar os registros semelhantes, identifique e quantifique os campos que apresentam diferenças — recomendo armazenar em variáveis esses dados. Você poderá usar essas informações para decidir se é necessário ou não levar o alimentador para a outra tabela;

  4. Antes de enviar o alimentador com a maior diferença para uma nova tabela, verifique se ele atende às condições para 'TRECHO_MANOBRA' e 'EQUIP_MANOBRA'. Isso também pode ser feito a partir de estruturas condicionais. Conforme o resultado obtido e a estrutura de sua tabela, há a possibilidade de definir se o agendamento será feito ou não.

    Neste contexto, ter uma coluna que aceita somente dados binários (como 0 e 1), a fim de definir se um agendado acontecerá ou não, é uma ideia interessante.

  5. Por fim, utilize uma consulta de inserção para enviar cada alimentador à tabela desejada. O método específico para isso dependerá da biblioteca e do tipo do banco de dados que você está usando!

Eduardo, espero que minhas dicas te ajudem nesta tarefa. No entanto, vale ressaltar que como é um assunto externo aos cursos da Alura e que não tenho acesso ao cenário completo do projeto, outros testes e pesquisas terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema!

Um abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!