![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пипл! помогите с SQL запросом [D7, Paradox]
Pancha © (2004-02-26 16:56:00)Есть таблица table.DB
naimenovanie Data
наим1 10.01.04
наим1 12.01.04
наим1 15.01.04
наим1 20.01.04
наим2 10.01.04
наим2 17.02.04
наим2 21.02.04
и т.д.
Как провести фильтрацию на текущую дату, чтобы получилось
наим1 20.01.04 //ближайшая дата к сегодняшней дате для наим1
наим2 21.02.04 //для наим2
и т.д.
Alex_Bredin (2004-02-26 18:00:00) [1]
> Pancha (26.02.04 17:38) [15]
надо сразу корректно ставить вопрос
Sandman25+1 (2004-02-26 17:45:00) [2][16] Johnmen © (26.02.04 17:38)
Согласен. Было бы как в вопросе.
>Разве это плохо?
Тяжелый день сегодня. А завтра будет еще хуже :)
Johnmen (2004-02-26 17:39:00) [3]>Pancha (26.02.04 17:38) [15]
Тогда Sandman25+1 (26.02.04 17:01) [1]
Johnmen (2004-02-26 17:38:00) [4]>Sandman25+1 (26.02.04 17:32) [14]
>Тогда было бы написано, не ближайший, а ближайший в будущем :)
Просто ближайшая. Как в вопросе...
>Разве это плохо?
Отчего такой пессимизм ? Я поводов не давал...:)
Pancha (2004-02-26 17:38:00) [5]По поводу текущей я загнул, просто - мах дату,
но у меня больше двух полей и
select naim,max(data)from mytable t1
group by naim
не канает
Sandman25+1 (2004-02-26 17:32:00) [6][13] Johnmen © (26.02.04 17:27)
Тогда было бы написано, не ближайший, а ближайший в будущем :)
А вообще, автор уже ясно написал, что сам не уверен, что хочет. Вот я и пытался ответить на самую типичную ситуацию - найти последнюю использовавшуюся цену. Разве это плохо? :)
Johnmen (2004-02-26 17:27:00) [7]>Sandman25 © (26.02.04 17:20) [12]
А м.б. это расписание ?
:)
Sandman25+1 (2004-02-26 17:20:00) [8][9] Johnmen © (26.02.04 17:13)
Я, наивный, исходил из того, что машины времени пока не изобретено, и в базе нет данных на завтра. :)
Но если надо учесть, то не вижу проблемы в добавлении and date <= :date во вложенный select.
Соловьев (2004-02-26 17:14:00) [9]2 Johnmen © (26.02.04 17:09) [6]
да уж.. век живи, век учись :)
Pancha (2004-02-26 17:13:00) [10]Так и не понял, что мне нада знать:) Но пасиба.
Johnmen (2004-02-26 17:13:00) [11]>Sandman25 © (26.02.04 17:01) [1]
>Alex_Bredin © (26.02.04 17:05) [2]
Казалось бы, причем здесь тек.дата ?
:)))
Sandman25+1 (2004-02-26 17:12:00) [12][7] Alex_Bredin © (26.02.04 17:09)
Конечно. Ваш запрос быстрее работает, так что если ему надо именно то, что он написал, то лучше использвать Ваш вариант.
Alex_Bredin (2004-02-26 17:09:00) [13]это знает только автор ))
Johnmen (2004-02-26 17:09:00) [14]>Соловьев © (26.02.04 17:05) [3]
Правильно по поводу того, что надо же учесть тек.дату.
Но неверно по результату...:)
Sandman25+1 (2004-02-26 17:06:00) [15]Конечно, проще. Но логически мысля, в таблице кроме этих двух полей есть еще поля, и автора интересует найти значения этих полей. Цены, например.
Johnmen (2004-02-26 17:06:00) [16]Примерно так
SELECT *
FROM table T1
WHERE T1.Data-<текущая дата>=
SELECT MIN(T2.Data-<текущая дата>) FROM table T2
WHERE T2.naimenovanie=T1.naimenovanie)
хотя кто знает этот Парадокс...:)
Соловьев (2004-02-26 17:05:00) [17]select naimenovanie, Max(Data)
from table
group by naimenovanie
having by Max(Data)<:param
Alex_Bredin (2004-02-26 17:05:00) [18]а не проще
select naim,max(data)from mytable t1
group by naim
Sandman25+1 (2004-02-26 17:01:00) [19]select * from mytable t1 where data = (select max(data) from mytable t2 where t2.naimen=t1.naimen)