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

Вниз

Пипл! помогите с 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.03 c
3-1077161235
DimaF
2004-02-19 06:27
2004.03.28
IBUpdateSQL


3-1078101905
dir_Err
2004-03-01 03:45
2004.03.28
создание копии...


1-1078658419
Fess
2004-03-07 14:20
2004.03.28
Работа с файлами


1-1079002982
fatal
2004-03-11 14:03
2004.03.28
TreeView как в касперском


1-1079027626
DDA
2004-03-11 20:53
2004.03.28
Зарегистрирована горячая клавиша или нет