Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.022 c
1-10782
NavigatorV
2003-08-23 01:31
2003.09.04
Manifest


14-10921
Pitay
2003-08-17 20:25
2003.09.04
Ну скажите мне пожалуйста!!! что я делаю не так?


14-10975
nok
2003-08-14 19:37
2003.09.04
виндовый sheduller


14-10926
iZEN
2003-08-17 00:05
2003.09.04
msblast - прикрытие более изощрённой атаки?


1-10715
Jao
2003-08-15 17:41
2003.09.04
как программно добавить комментарий в xmldocument?