Выберите запись с наибольшим значением id в sybase ase

У меня есть этот запрос

    ВЫБЕРИТЕ Reg.id_Movimiento, Tip.NombreTipoMov
    FROM        ut_sgt_Movimientos_t Reg
    INNER JOIN  ut_sgt_TiposMovimientos_m Совет
                ON Reg.id_TipoMov = Tip.id_TipoMov
    ГДЕ Reg.id_Registro = 367

С этим выводом:

8 Retiro
6 Marcaje
7 Porteador
5 Descarga
1 Almacenaje

Как выбрать запись с наибольшим значением идентификатора?

Я не могу использовать подзапрос, установить row count или top 1, только агрегировать функции, имеющие или сгруппированные по

Я пытался:

    ВЫБЕРИТЕ Reg.id_Movimiento, Tip.NombreTipoMov FROM ut_sgt_Movimientos_t Reg ВНУТРЕННЕЕ СОЕДИНЕНИЕ ut_sgt_TiposMovimientos_m Подсказка ON Reg.id_TipoMov = Tip.id_TipoMov ГДЕ Reg.id_Registro = RegovMidMovMov = 367MOV

Но выход

8 Retiro
8 Marcaje
8 Porteador
8 Descarga
8 Almacenaje

2 ответа

Я уверен, что HAVING нужно использовать с функцией Group By.

SELECT      Reg.id_Movimiento, Tip.NombreTipoMov
FROM        ut_sgt_Movimientos_t Reg
INNER JOIN  ut_sgt_TiposMovimientos_m Tip
            ON Reg.id_TipoMov = Tip.id_TipoMov
WHERE       Reg.id_Registro = 367
GROUP FILTER rank() < 1
GROUP BY Reg.id_Movimiento, Tip.NombreTipoMov
GROUP ORDER BY Reg.id_Movimiento desc
HAVING      Reg.id_Movimiento = MAX(Reg.id_Movimiento)

Нашел немного больше для Sybase

Ну, так как вы указываете, что вы не можете использовать, я предполагаю, что все остальное - честная игра.

SET ROWCOUNT 1

SELECT      Reg.id_Movimiento, Tip.NombreTipoMov
FROM        ut_sgt_Movimientos_t Reg
INNER JOIN  ut_sgt_TiposMovimientos_m Tip
            ON Reg.id_TipoMov = Tip.id_TipoMov
WHERE       Reg.id_Registro = 367
ORDER BY Re.ID DESC

SET ROWCOUNT 0
Другие вопросы по тегам