如何按日期而不是表中的第一个获取最新记录?

在我的查询中,当我按frl_nr分组时,我获得了olje表的第一条记录。 olje表中有许多具有相同frl_nr的记录。我想按日期列从olje表中获取最新记录。她是我的搜索字符串:

$sql = "SELECT * 
        FROM frl_sok 
          INNER JOIN olje ON frl_sok.id_nr = olje.id_nr 
        WHERE frl_sok.kunde_nr = '$kunde' 
           AND frl_sok.jobb_nr = '$jobb_nr' 
        GROUP BY frl_sok.frl_nr DESC";

解决方案是什么?

Both of my tables are here

aqmes 回答:如何按日期而不是表中的第一个获取最新记录?

您应该使用row_number()而不是尝试分组。

尝试一下:

select * from (
    SELECT *,row_number() over (partion by frl_sok.frl_nr order by date desc) rn
    FROM frl_sok 
    INNER JOIN olje ON frl_sok.id_nr = olje.id_nr 
    WHERE frl_sok.kunde_nr = '$kunde' 
    AND frl_sok.jobb_nr = '$jobb_nr' 
) q where rn=1"
,

这是我想出的解决方案,它可以工作。

$ sql =“ SELECT a.id_nr,a.frl_nr,a.maskin_id,a.tilstand_olje,b.date from frl_sok a INNER JOIN olje b ON a.id_nr = b.id_nr INNER JOIN(SELECT id_nr,MAX( date)Max_Date from olje GROUP BY id_nr)c ON b.id_nr = c.id_nr AND b.date = c.Max_date WHERE a.kunde_nr ='$ kunde'AND a.jobb_nr ='$ jobb_nr'“;

本文链接:https://www.f2er.com/3148442.html

大家都在问