Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.49 MB
Время: 0.031 c
3-1077870961
BugMaker
2004-02-27 11:36
2004.03.28
Не устраивает скорость работы INSERTов в ADO :-(


14-1077894056
syte_ser78
2004-02-27 18:00
2004.03.28
C выходными и концом зимы


3-1077867010
The X
2004-02-27 10:30
2004.03.28
Interbase. Шаблон в процедуре для заполнения нулями до нуж. длины


4-1073768458
tytus
2004-01-11 00:00
2004.03.28
Нуль-терминал в OLE-строку.


14-1077984008
Dimaz-z
2004-02-28 19:00
2004.03.28
Проблемка. Linux.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский