Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL запрос на последнюю дату внесения [D6, IB6.x, FireBird]


Страницы:   1 2

galexis ©   (2003-08-11 16:29:00) 

Уважаемые мастера! Помогите пожалуйста составить SQL запрос. Из БД выбирается запись удовлетворяющая куче условий. Нужна одна запись. А появляется две. Различаются они датой внесения записи (поле DTZAP). Надо чтобы осталась последняя внесенная запись (по дате). Т.е., что надо добавить к моему запросу?


Zacho   (2003-08-12 07:41:00) [1]

У тебя FB ? Если да, то самое простое:
SELECT FIRST 1 .... ORDER BY DTZAP DESC


Johnmen   (2003-08-11 18:17:00) [2]

Если борешься за быстроту, то лучше добавить в твой запрос ORDER BY <datefield> DESC, а в приложении обратиться к первой записи НД.


Anatoly Podgoretsky   (2003-08-11 17:59:00) [3]

И пошло опять по кругу


galexis   (2003-08-11 17:47:00) [4]

А нельзя связать как нибудь с другими таблицами из основного запроса с помощью JOIN?


Reindeer Moss Eater   (2003-08-11 17:44:00) [5]

Не хочешь - не повторяй. Я же не настаиваю.


galexis   (2003-08-11 17:44:00) [6]

У меня 15 условий в запросе после Where. Точнее это максимум 15, т.к. запрос формируется пользователем, т.е. если пользователь ввел наименование предприятия в запрос добавится and NAME LIKE, ввел наименование улицы добавится еще And ... А теперь еще и вложенный запрос. Мне в нем что повторять все условия что-ли?


Reindeer Moss Eater   (2003-08-11 17:40:00) [7]

Если выкинуть WHERE во вложенном запросе ничего не находит. Но и ошибки не пишет

И это неправильно по твоему?


galexis   (2003-08-11 17:37:00) [8]

>Reindeer Moss Eater
Если выкинуть WHERE во вложенном запросе ничего не находит. Но и ошибки не пишет


galexis   (2003-08-11 17:33:00) [9]

>HSolo
Точно. Так работает. Только вот теперь неизвестно, что писать в Where. Не перечислять же все условия основного запроса?


Reindeer Moss Eater   (2003-08-11 17:31:00) [10]

Ну и что? Увидел похожее слово?
Union исключит повторяющиеся записи в ОБОИХ селектах. И никак не повлияет на повторяемость записей в каждом селекте.

Вот тебе для подсказки. Выполни, не меняя ничего.
select * from Table where fld1 = (select MAX(fld1) from Table)


HSolo   (2003-08-11 17:30:00) [11]

...and (DTZAP = (select MAX(DTZAP) from table t Where t.Fld1=.... and t.fld2=.. ))


galexis   (2003-08-11 17:27:00) [12]

Ну там же написано про UNION "Комбинирует результаты двух или более инструкций SELECT создавая одиночную динамическую таблицу исключая повторяющиеся строки"


Reindeer Moss Eater   (2003-08-11 17:21:00) [13]

Известно.
А зачем оно тебе?
Думаешь с UION выберет меньше записей, чем без него?


galexis   (2003-08-11 17:18:00) [14]

Да уж. Может Вам известно как UNION использовать?


Reindeer Moss Eater   (2003-08-11 17:14:00) [15]

Блин, не везет тебе сегодня.


galexis   (2003-08-11 17:11:00) [16]

Тоже пишет Token Unknown


galexis   (2003-08-11 17:07:00) [17]

12 к вашему 10 относилось. Сейчас проверю 11


galexis   (2003-08-11 17:06:00) [18]

После AND я уже пробовал. Ошибку пишет "неизвестный оператор select". Я тут вот про вложенный оператор select - UNION читаю, может как с ним?


Reindeer Moss Eater   (2003-08-11 17:03:00) [19]

У меня уже есть select fld1, fld2, ... from Table where Fld1=.... and fld2=.. and ..

select fld1, fld2, ... from Table where Fld1=.... and fld2=.. and .. and (DTZAP = select MAX(DTZAP) from table Where Fld1=.... and fld2=.. )


Reindeer Moss Eater   (2003-08-11 17:02:00) [20]

В конце. После And.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо