Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Вниз

SQL запрос на последнюю дату внесения   Найти похожие ветки 

 
galexis   (2003-08-11 16:29) [0]

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


 
Reindeer Moss Eater   (2003-08-11 16:30) [1]

Надо добавить еще одно условие


 
galexis   (2003-08-11 16:31) [2]

> Reindeer Moss Eater

А какое именно?


 
Reindeer Moss Eater   (2003-08-11 16:32) [3]

Что бы осталась запись с максимальной датой.


 
galexis   (2003-08-11 16:33) [4]

А как записать.
and DTZAP=MAX(DTZAP) ?


 
Reindeer Moss Eater   (2003-08-11 16:34) [5]

... DTZAP = select MAX(DTZAP) ...


 
galexis   (2003-08-11 16:42) [6]

Что то не понятно. А как эту структуру к моему запросу приделать? У меня уже есть select fld1, fld2, ... from Table where Fld1=.... and fld2=.. and ..


 
galexis   (2003-08-11 16:48) [7]

> Reindeer Moss Eater
А всетаки, как правильно, где должно в запросе стоять DTZAP = select MAX(DTZAP)? Подскажите пожалуйста


 
Reindeer Moss Eater   (2003-08-11 16:50) [8]

Мне тоже непонятно. Представляешь?
И всем остальным тоже непонятно.
У тебя хоть текст оригинального запроса есть, тебе легко....


 
galexis   (2003-08-11 16:59) [9]

Смешно вам. А у меня БД не работает нормально.
Структуру запроса я же написал. В каком месте должно стоять DTZAP = select MAX(DTZAP)?


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

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


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

У меня уже есть 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=.. )


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

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


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

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


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

Тоже пишет Token Unknown


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


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

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


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

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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.009 c
1-10808
AndreyDm
2003-08-20 14:09
2003.09.04
Добавить содержимое буфера к Stringlist


6-10849
Leran2003
2003-06-30 15:33
2003.09.04
TNMHTTP and CGI


1-10709
DieHard
2003-08-20 15:44
2003.09.04
Методы вне класса


14-10888
Study
2003-08-14 13:15
2003.09.04
2 вопроса


3-10631
Lamer_of_Delphi
2003-08-13 09:38
2003.09.04
Запрос не выполняется!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский