Выберите запись с наибольшим значением 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