Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > SQL запрос,


Автор: Guest_Сергей 25.3.2003, 03:33
Всем привет!

Мне необходимо из таблицы достать всего одну строку, в которой поле id имеет максимальное значение. (id – счетчик).
Я перепробовал кучу вариантов и все мимо. Это SQL запрос, который в принципе должен подходить под любую базу.


ResultSet rs = statement.executeQuery ("SELECT max(id), ip, d1 FROM table1 ");
or
ResultSet rs = statement.executeQuery ("SELECT id, ip, d1 FROM table1 WHERE max(id) ");
or
ResultSet rs = statement.executeQuery ("SELECT id, ip, d1 FROM table1 WHERE id = max(id) ");
or
ResultSet rs = statement.executeQuery ("SELECT id, ip, d1 FROM table1 WHERE id = max(id.table1) ");

Если не выставлять id как максимальное значение, то все работает.

Автор: Vit 25.3.2003, 05:19
Select max(id) From Table1 - но тогда нельзя другие параметры

Есть другие варианты:

SELECT max(id), ip, d1 FROM table1
Group By ip, d1


Или

SELECT top 1 id, ip, d1 FROM table1
Order by id desc

Автор: U-gene 25.3.2003, 18:52
1)
SELECT max(id), ip, d1 FROM table1 Group By ip, d1
Ну это не то! То есть СОВСЕМ не то.

2)
ТОР -
может быть, но явно не стандартное ср-во

Следующий вариант будет работать точно

SELECT * FROM table1 WHERE id IN (SELECT max(id) FROM table1)



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)