Как получить самую последнюю запись по дате, а не первую из таблицы? - PullRequest
0 голосов
/ 07 ноября 2019

В моем запросе я получаю первую запись в таблице olje, когда я группирую по frl_nr. Есть много записей с одним и тем же frl_nr в таблице olje. Я хочу получить последнюю запись из таблицы 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";

Какое решение?

Обе мои таблицы здесь

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Вот решение, которое я предложил, и оно работает.

$ sql = "SELECT a.id_nr, a.frl_nr, a.maskin_id, a.tilstand_olje, b.date ОТ frl_sok ВНУТРЕННЕЕ СОЕДИНЕНИЕolj b ON a.id_nr = b.id_nr INNER JOIN (ВЫБЕРИТЕ id_nr, MAX (дата) Max_Date ОТ ОЛЬЕ ГРУППЫ BY id_nr) c ON b.id_nr = c.id_nr И b.date = c.Max_date WHERE a.kunde_nr = '$ kunde 'AND a.jobb_nr =' $ jobb_nr '";

0 голосов
/ 07 ноября 2019

Вы должны использовать 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...