Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизПипл! помогите с SQL запросом Найти похожие ветки
← →
Pancha (2004-02-26 16:56) [0]Есть таблица 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
и т.д.
← →
Sandman25+1 (2004-02-26 17:01) [1]select * from mytable t1 where data = (select max(data) from mytable t2 where t2.naimen=t1.naimen)
← →
Alex_Bredin © (2004-02-26 17:05) [2]а не проще
select naim,max(data)from mytable t1
group by naim
← →
Соловьев © (2004-02-26 17:05) [3]select naimenovanie, Max(Data)
from table
group by naimenovanie
having by Max(Data)<:param
← →
Johnmen © (2004-02-26 17:06) [4]Примерно так
SELECT *
FROM table T1
WHERE T1.Data-<текущая дата>=
SELECT MIN(T2.Data-<текущая дата>) FROM table T2
WHERE T2.naimenovanie=T1.naimenovanie)
хотя кто знает этот Парадокс...:)
← →
Sandman25+1 (2004-02-26 17:06) [5]Конечно, проще. Но логически мысля, в таблице кроме этих двух полей есть еще поля, и автора интересует найти значения этих полей. Цены, например.
← →
Johnmen © (2004-02-26 17:09) [6]>Соловьев © (26.02.04 17:05) [3]
Правильно по поводу того, что надо же учесть тек.дату.
Но неверно по результату...:)
← →
Alex_Bredin © (2004-02-26 17:09) [7]это знает только автор ))
← →
Sandman25+1 (2004-02-26 17:12) [8][7] Alex_Bredin © (26.02.04 17:09)
Конечно. Ваш запрос быстрее работает, так что если ему надо именно то, что он написал, то лучше использвать Ваш вариант.
← →
Johnmen © (2004-02-26 17:13) [9]>Sandman25 © (26.02.04 17:01) [1]
>Alex_Bredin © (26.02.04 17:05) [2]
Казалось бы, причем здесь тек.дата ?
:)))
← →
Pancha (2004-02-26 17:13) [10]Так и не понял, что мне нада знать:) Но пасиба.
← →
Соловьев © (2004-02-26 17:14) [11]2 Johnmen © (26.02.04 17:09) [6]
да уж.. век живи, век учись :)
← →
Sandman25+1 (2004-02-26 17:20) [12][9] Johnmen © (26.02.04 17:13)
Я, наивный, исходил из того, что машины времени пока не изобретено, и в базе нет данных на завтра. :)
Но если надо учесть, то не вижу проблемы в добавлении and date <= :date во вложенный select.
← →
Johnmen © (2004-02-26 17:27) [13]>Sandman25 © (26.02.04 17:20) [12]
А м.б. это расписание ?
:)
← →
Sandman25+1 (2004-02-26 17:32) [14][13] Johnmen © (26.02.04 17:27)
Тогда было бы написано, не ближайший, а ближайший в будущем :)
А вообще, автор уже ясно написал, что сам не уверен, что хочет. Вот я и пытался ответить на самую типичную ситуацию - найти последнюю использовавшуюся цену. Разве это плохо? :)
← →
Pancha (2004-02-26 17:38) [15]По поводу текущей я загнул, просто - мах дату,
но у меня больше двух полей и
select naim,max(data)from mytable t1
group by naim
не канает
← →
Johnmen © (2004-02-26 17:38) [16]>Sandman25+1 (26.02.04 17:32) [14]
>Тогда было бы написано, не ближайший, а ближайший в будущем :)
Просто ближайшая. Как в вопросе...
>Разве это плохо?
Отчего такой пессимизм ? Я поводов не давал...:)
← →
Johnmen © (2004-02-26 17:39) [17]>Pancha (26.02.04 17:38) [15]
Тогда Sandman25+1 (26.02.04 17:01) [1]
← →
Sandman25+1 (2004-02-26 17:45) [18][16] Johnmen © (26.02.04 17:38)
Согласен. Было бы как в вопросе.
>Разве это плохо?
Тяжелый день сегодня. А завтра будет еще хуже :)
← →
Alex_Bredin © (2004-02-26 18:00) [19]
> Pancha (26.02.04 17:38) [15]
надо сразу корректно ставить вопрос
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.033 c