Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] SQL Выбор записей с максимальным значением

Ответить
Настройки темы
Delphi - [решено] SQL Выбор записей с максимальным значением

Старожил


Сообщения: 396
Благодарности: 10

Профиль | Цитировать


Есть таблица вида

id (уникальное поле)****Lastname****Firstname*****Fathername*****id_fl
1******************** Иванов******Иван******** Иванович*******3
2*********************Петров******Петр*********Петрович*******4
3*********************Сидоров*****Сидор********Сидорович*****5
4*********************Иванов******Иван*********Иванович******3
5*********************Петров******Петр**********Петрович*****4
6*********************Сидоров*****Сидор********Сидорович****5
7*********************Петров******Петр*********Петрович*****4
8*********************Иванов******Иван*********Иванович*****3

Нужно отобрать записи с максимальным ID, т.е. в данном примеры записи с id 5,6 и 7.
Помогите пожалуйста.
пишу
Код: Выделить весь код
select id_fl, MAX(id) from NACHISLENIE group by id_fl
отбирает только 2 колонки id_fl и max, если в запрос добавляю еще колонку, то ругается.

Отправлено: 06:50, 12-06-2011

 

В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата tarakan1983:
Ругается на "-3" »
Попробуйте скобку передвинуть перед - 3...

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 15:14, 12-06-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


Тогда - небольшую правку.
Код: Выделить весь код
SELECT id, Lastname, Firstname, Fathername, id_fl FROM NACHISLENIE WHERE id>((SELECT MAX(id) FROM NACHISLENIE) - 3) GROUP BY id_fl;
Но если надо группировать по дате начисления, тогда надо задействовать соответствующее поле.

Отправлено: 15:15, 12-06-2011 | #12


Старожил


Сообщения: 396
Благодарности: 10

Профиль | Цитировать


Цитата Любезный:
Тогда - небольшую правку. »
ругается
Цитата:
Invalid token. Dynamic SQL Error. SQL error code = -104. Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
вроде работает так

Код: Выделить весь код
SELECT id, Lastname, Firstname,  Fathername FROM NACHISLENIE a INNER JOIN (   SELECT id_fl, MAX(id) AS maxID   FROM NACHISLENIE   GROUP BY id_fl ) b ON a.id = b.maxID ORDER BY a.lastname

Отправлено: 15:19, 12-06-2011 | #13


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


Цитата tarakan1983:
Invalid token. Dynamic SQL Error. SQL error code = -104. Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause). »
Удивительно. А по какой технологии работаете с БД?

Отправлено: 15:26, 12-06-2011 | #14


Старожил


Сообщения: 396
Благодарности: 10

Профиль | Цитировать


Цитата Любезный:
Удивительно. А по какой технологии работаете с БД? »
В смысле?

Отправлено: 15:30, 12-06-2011 | #15


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


Какие компоненты используете?

Отправлено: 15:38, 12-06-2011 | #16


Старожил


Сообщения: 396
Благодарности: 10

Профиль | Цитировать


SQL Manager for InterBase & Firebird

Отправлено: 15:40, 12-06-2011 | #17


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


Странно... Не пойму, почему не работал тот вариант.

Ну ладно. главное, что решение нашлось.

Отправлено: 15:46, 12-06-2011 | #18


Старожил


Сообщения: 396
Благодарности: 10

Профиль | Цитировать


Всем спасибо за участие

Отправлено: 15:47, 12-06-2011 | #19


Старожил


Сообщения: 396
Благодарности: 10

Профиль | Цитировать


Прошу прощенья, сделал поспешный вывод или неправильно поставил задачу.
Нужно из таблицы Людей выбрать всех людей и проставить и максимальное ID из таблицы Nachislenie, если такого нет то проставить 0(или null). Т.е. Если у Иванова в таблице Nachislenie начисление с максимальным id - 21875, а у петрова в таблице nachislenie нет ничего. Должно получиться:

Иванов ----------- 21875
Петров-------------0 (ну или null)

Отправлено: 17:18, 12-06-2011 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] SQL Выбор записей с максимальным значением

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 - [решено] выбор сервера для 1C (SQL server) riga_f Windows Server 2008/2008 R2 6 30-08-2010 08:11
[решено] Работа с бинарным значением, как с строкой. SyDr AutoIt 4 30-05-2009 07:30
Как передать параметры из формы с множественным значением koresaram Вебмастеру 3 22-07-2006 13:06
Выбор записей с сортировкой (MySQL) benya Вебмастеру 8 21-06-2006 21:09
Mysql Выбор записей + к каждой count из другой таблицы benya Вебмастеру 11 26-05-2006 18:27




 
Переход