How to find the most updated tuple in postgres?

Asked

Viewed 123 times

0

Amigos. I am having difficulty recovering the most current mileage of a vehicle when it arrives at the company. The identification of the tuple is by the date of arrival of the vehicle in the company.
At the moment I have the following SQL:

select relatorio_viagem_veiculo.referencia_veiculo, MAX(relatorio_viagem.data_chegada) from relatorio_viagem inner join relatorio_viagem_veiculo on( relatorio_viagem.id_relatorio_viagem = relatorio_viagem_veiculo.id_relatorio_viagem ) where relatorio_viagem_veiculo.referencia_veiculo = '246' and            relatorio_viagem.data_saida between '2017-03-01' and '2017-03-31' group by   relatorio_viagem_veiculo.referencia_veiculo, relatorio_viagem.data_chegadaorder by relatorio_viagem.data_chegada desc;  

And return me the following result:
inserir a descrição da imagem aqui

I would like you to return to me the most current record, namely:
inserir a descrição da imagem aqui

I hope I have explained well what I desire. I thank you for your help!

1 answer

0


Remove the field data_chegada of group by, this way the reference of each vehicle and the maximum date will be returned.

SELECT
    relatorio_viagem_veiculo.referencia_veiculo,
    max(relatorio_viagem.data_chegada)
FROM relatorio_viagem
    INNER JOIN relatorio_viagem_veiculo 
        ON (relatorio_viagem.id_relatorio_viagem = relatorio_viagem_veiculo.id_relatorio_viagem)
WHERE
    relatorio_viagem_veiculo.referencia_veiculo = '246'
    AND relatorio_viagem.data_saida BETWEEN '2017-03-01'
    AND '2017-03-31'
GROUP BY
    relatorio_viagem_veiculo.referencia_veiculo
ORDER BY
    2 DESC;
  • ERROR: "reporter_trip.arrival date" column should appear in the GROUP BY clause or be used in an aggregation function LINE 14: reporter_trip.arrivals DESC;

  • @Brunoduarte, the mistake must be because of order by, i edited my answer, try again with the new code, with reference to index 2.

  • worked perfectly. Thank you!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.