Форум: "Базы";
Текущий архив: 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