Consulta (query) repetindo dados

1. Consulta (query) repetindo dados

Olivier Teles Leal Araujo
olivierleal

(usa Outra)

Enviado em 31/10/2023 - 10:02h

Olá a todos,

Estou enfrentando um problema com uma query em um sistema onde objetos podem ter várias situações registradas em uma tabela de histórico (historico_situacao). O problema é que ao puxar um relatório, estou recebendo resultados duplicados devido a pequenas diferenças de tempo na inserção dos registros. Mesmo após utilizar a cláusula DISTINCT, a data de registro continua sendo duplicada, o que afeta a precisão do relatório gerado.

Gostaria de saber se alguém poderia me ajudar a encontrar uma solução para obter apenas a última alteração de uma determinada situação de um objeto, sem que a data de registro seja duplicada. Infelizmente, meu acesso ao sistema é limitado e não posso fazer alterações diretas nele.

Agradeço antecipadamente por qualquer orientação ou sugestão que possa resolver esse problema.

Obrigado.


  


2. Re: CONSULTA(QUERY) REPETINDO DADOS

Buckminster
Buckminster

(usa Debian)

Enviado em 31/10/2023 - 10:59h

Tenta com DISTINCT e/ou LIMIT 1.
Mas para poder ajudar mesmo teria que se ver essa parte do código da consulta SQL.


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


3. Re: Consulta (query) repetindo dados

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 31/10/2023 - 11:16h


Dado que registros com uma certa margem de tempo podem ser considerados os mesmos, a primeira coisa a fazer é definir o que é um registro e o que o torna único.


4. Re: Consulta (query) repetindo dados

Alvin Gehrke Curzel
alvingecurzel

(usa Debian)

Enviado em 28/12/2023 - 16:52h


Olá!
Tenta colocar uma ordenação pelo campo de data com um limit 1, ou se for um conjunto maior de dados o distinct on(campo chave) deve resolver


5. Re: Consulta (query) repetindo dados

José Denilson Niz
joseniz

(usa Outra)

Enviado em 14/02/2024 - 01:09h


Usa a função de agregação MAX para selecionar a data mais recente dentre os registros..

SELECT campo1, MAX(campo2), campo3
from tabela
WHERE <filtros>
GROUP BY campo1, campo3
ORDER BY <lista de campos para ordenação>;






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts