Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как выбрать первую запись с определенными условиями??? [D5, D6, IB5.x, IB6.x]


Sirus ©   (2003-05-07 11:19:00) 

Привет Мастера...
Есть вопрос: Можно ли выбрать первую запись отвечающую определенным уловиям?
Например:
select SUBS_CODE, DTR_DATE from SUBS_DTR
where DTR_DATE>"01.01.2003"
Должно возвращать только одну строку (первую)...

Если можно то как?


WarLord   (2003-05-07 15:15:00) [1]

SELECT SUBS_CODE, DTR_DATE
FROM SUBS_DTR
WHERE DTR_DATE = (SELECT MIN(DTR_DATE) FROM SUBS_DTR)


paxer   (2003-05-07 14:57:00) [2]

В MySQL есть LIMIT <КвоЗаписей>. Может что-то подобное есть в ИБ?


Zacho   (2003-05-07 12:20:00) [3]


> Sirus © (07.05.03 12:08)

Проще всего сделать хранимую процедуру.

> вторую по счету дату у клиента...

Вторую от чего ?


Sirus   (2003-05-07 12:08:00) [4]

Вот нужно как раз что-то типа
select FIRST N SKIP M from TABLE1
Сейчас я обхожусь запросом:
select SUBS_CODE, min(DTR_DATE) from SUBS_DTR
where DTR_DATE>"01.01.2003"
group by SUBS_CODE

Результат запроса пока устраивает, но скоро нужно будет узнавать вторую по счету дату у клиента...


Виталий Панасенко   (2003-05-07 11:57:00) [5]

а DISTINCT не поможет ?..


Zacho   (2003-05-07 11:38:00) [6]

В FB и YAFFIL есть FIRST/SKIP
D IB5.x IB6.x таких конструкций нет. Если очень надо можено добится такого результата с помощью ХП. Но, честно говоря, у меня возникают серьезные сомнения в такой необходимости. Скорее всего неправильно разработана структура данных.


Соловьев   (2003-05-07 11:34:00) [7]


> Результат должен содержать только первые записи, а не все...

по какому условию?


Sirus   (2003-05-07 11:32:00) [8]

Дело в том что запрос на самом деле выбирает больше записей...
То есть результатов много скажем для записей со значением поля SUBS_CODE="0401" нужно выбрать первую запись, то же самое для записей с другими значениями поля SUBS_CODE... Результат должен содержать только первые записи, а не все...
Для примера: Запрос должен выбирать даты первого вложения средств всех клиентов предприятия... (что-то наподобие group by)


Johnmen   (2003-05-07 11:27:00) [9]

>Leshiy © (07.05.03 11:23)

Нет.

>Sirus © (07.05.03 11:19)

Действительно, что мешает то ?


Соловьев   (2003-05-07 11:24:00) [10]

не понятно...
а что тебе мешает взять первую?


Leshiy   (2003-05-07 11:23:00) [11]

select top 1 ...?


Наверх

Титульная страница Поиск, карта сайта Написать письмо