Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 04:37   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию sql запрос на выборку максимального времени с максимальной датой.

Здравствуйте.
Задача заключается в следующем необходимо выбрать запись с максимальным значением времени и максимальным значением даты. Пробовал сделать так.
Код:
SElECT MAX(ND_STAT_PARAM."ВРЕМЯ ИЗМЕНЕНИЯ") FROM ND_STAT_PARAM where ND_STAT_PARAM."ДАТА ИЗМЕНЕНИЯ"=MAX(ND_STAT_PARAM."ДАТА ИЗМЕНЕНИЯ")';
Вылетает ошибка.
Lokos вне форума Ответить с цитированием
Старый 25.10.2011, 05:36   #2
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Ошибка видимо сообщает о невозможности использования where с агрегатными функциями.
а если так
Код:
select max(logtime), logdate from TABLE_LOGS
group by logdate
having logdate in 
(select max(logdate) from table_logs)
у меня вернуло единственнное значение
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем

Последний раз редактировалось mihali4; 25.10.2011 в 13:52.
Surgeon вне форума Ответить с цитированием
Старый 25.10.2011, 06:02   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

да ошибку выдавала именно такую.

Ругается на By после group
Lokos вне форума Ответить с цитированием
Старый 25.10.2011, 08:41   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Lokos, что за СУБД у Вас?

Цитата:
Ругается на By после group
и как именно ругается? Ну что Вы скрытничаете? Вам нужно задачу решить или в угадайку с нами поиграть?!

а если так попробовать:
Код:
SElECT MAX(ND_STAT_PARAM."ВРЕМЯ ИЗМЕНЕНИЯ") FROM ND_STAT_PARAM 
where ND_STAT_PARAM."ДАТА ИЗМЕНЕНИЯ" in 
    (select MAX(ND_STAT_PARAM."ДАТА ИЗМЕНЕНИЯ") from ND_STAT_PARAM )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2011, 01:22   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Ошибка следующая:
FIBDS.SelectQuery Invalid Token. Dynamicc SQL Error. SQL Error code = -104. Token unknow - line 1, colum 101. By.

Если изменить на ваш код то ошибка меняется следующим образом:
]FIBDS.SelectQuery Invalid Token. Dynamicc SQL Error. SQL Error code = -104. Token unknow - line 1, colum 82

СУБД FireBird

Все отлично работает. Проблема была в том что после in не было пробела

Последний раз редактировалось Lokos; 26.10.2011 в 01:32. Причина: проблема решена
Lokos вне форума Ответить с цитированием
Старый 26.10.2011, 08:55   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Все отлично работает. Проблема была в том что после in не было пробела
ну и слава Богу! Рад за Вас.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос на выборку Vervolf SQL, базы данных 5 31.07.2011 15:35
Сложный запрос на выборку SQL simka16 Помощь студентам 0 21.02.2011 18:43
sql-запрос на выборку данных kity Помощь студентам 3 07.06.2010 17:18
Запрос на выборку значений с некоторым интервалом времени. call_me_Frank SQL, базы данных 7 13.05.2010 17:11
SQL запрос с датой Botanik1987 Microsoft Office Access 15 24.03.2010 11:10