|
|
|
Как выбрать только первую запись из select?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Подскажите, как сотворить сие: interbase 6.01 в ХП делаем выборку, нужно на выходе поиметь _только_ данные из первой записи выполненного селекта. пробывал запользовать declare cursor, но ... то-ли руки растут откуда растут ноги, то-ли лыжи не едут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2004, 06:18 |
|
||
|
Как выбрать только первую запись из select?
|
|||
|---|---|---|---|
|
#18+
А что такое первая запись, этого interbase не знает. Объясни ей это с помощью ключа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2004, 08:40 |
|
||
|
Как выбрать только первую запись из select?
|
|||
|---|---|---|---|
|
#18+
в том-то и дело, что ключа такого не создать Исходные данные: объект генерит отчеты, отчеты пишем в БД. Основной информацией (в данном случае) является дата/время. Отчет бывает двух типов 'occurence' и 'ceasing'. данные в типе 'ceasing' частично повторяют 'occurence'. а также уникальность данного события возможна в промежутке от 'occurence' до 'ceasing'. в дальнейшем эта информация может дублироваться во всем, кроме времени записи евента. задача: на основе данных о 'occurence' найти время 'ceasing' ход мыслей: если сделать выборку с 'ceasing', отсортиванную по дате/времени, то первая полученная запись и будет тойвожделенной информацией, которую мы ищем... как ее получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2004, 09:23 |
|
||
|
Как выбрать только первую запись из select?
|
|||
|---|---|---|---|
|
#18+
Если не ошибаюсь, то execute procedure proc (в отличии от select * from proc) и так возвращает только первую запись . А вообще, что мешает написать соответсвующую ХП, котораю будет возвращать только первую запись. Просто вместо suspend сделать exit. Или есть какие-то ньюансы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2004, 10:03 |
|
||
|
Как выбрать только первую запись из select?
|
|||
|---|---|---|---|
|
#18+
в дополнение к Somebody в ХП нужно просто делать не foreach select * from тратата into :тратата, а тоже самое, только без foreach. тогда и возьмется только первая запись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2004, 22:50 |
|
||
|
Как выбрать только первую запись из select?
|
|||
|---|---|---|---|
|
#18+
feddв ХП нужно просто делать не foreach select * from тратата into :тратата, а тоже самое, только без foreach. тогда и возьмется только первая запись Ага, и тут же мы получим 'multiple rows in singleton select.' Правильно выбрать первую запись можно при помощи first (в FB) и rows (IB > 6.5, но тут я не уверен с версией). Если автор так и хочет оставаться на наиболее глючной версии, то можно в ХП выполнить следуюющее ... for select Field1 from MyTable into Field1 do begin suspend; exit; end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2004, 00:05 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32433618&tid=1579082]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 207ms |
| total: | 472ms |

| 0 / 0 |
