![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужна помощь в написании запроса SQL (SELECT) [D7, Paradox]
Asail © (2006-01-11 15:40:00)Здрасте!
Возникла задача написать запрос на выборку из таблицы данных:
Таблица table состоит из следующих полей (упрощенно):
table.ID : Char ;
table.Date : Date;
table.Time : Time;
table.Rate : Float
Нужно отобрать для каждой ID ОДНУ последнюю запись до определенного времени.
SELECT T,"ID", T."Date", T."Time"
FROM table AS t
WHERE (t."Date"<"1.9.2005")or
( (t."Date"="1.9.2005")and(t."Time"<"12:00:00") )
Вернет все записи до 1.9.2005 12:00, а надо только одну последнюю для каждого ID, максимально близкую к указанному времени . Как можно такое описать? Я, чего-то, никак не дотумкаю :-(.
Заранее, большое спасибо.
evvcom (2006-01-11 16:16:00) [1]
> 1. А LocalSQL, вроде, не поддерживает вложенные запросы?
Вроде... Вот и вопросы. Но вроде LocalSQL поддерживает джойн таблицы с sql, написанным в отдельном файле. Вот и поддержка подзапросов.
> 2. А примерчик можно?
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1136964821&n=1
unknown (2006-01-11 16:13:00) [2]
> Asail (11.01.06 16:02) [4]
>
> Не понял!!!
Нарисуй тут, какие примерно данные имеются и какой результат нужен.
ЗЫ:
подозрительный какой-то ID - Char, видимо это не идентификатор?
Asail (2006-01-11 16:12:00) [3]По разным полям разнесено, т.к. так сложилось исторически. Неохота таблицу переделывать. Так это не имеет значения, я, вот только все никак не врублюсь, что такое WHERE д.б.? И вопросы пошли, даже непробуя:
1. А LocalSQL, вроде, не поддерживает вложенные запросы?
2. А примерчик можно? И я отстану (надеюсь)!
evvcom (2006-01-11 16:06:00) [4]
> (t."Date"<"1.9.2005")or
> ( (t."Date"="1.9.2005")and(t."Time"<"12:00:00")
> )
А нафиг это по разным полям разнес? Собери вместе - меньше проблем будет. Имхо.
> Условие в WHERE д.б. перенесено в подзапрос
О! Сейчас попробует (может быть) и пойдут еще вопросы. :o) :?)
Asail (2006-01-11 16:02:00) [5]Не понял!!!
Asail (2006-01-11 16:02:00) [6]Не понял!!!
Johnmen (2006-01-11 15:48:00) [7]Условие в WHERE д.б. перенесено в подзапрос, который в WHERE, и в котором ещё добавится соединение с t по ID.
Asail (2006-01-11 15:44:00) [8]p.s. маленькое дополнение:
SELECT T,"ID", T."Date", T."Time", T."Rate"
Что, вобщем, сути вопроса не меняет.