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

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

ADO и SQL (вопрос по SQL) [D5]


DmitryNekl ©   (2003-05-06 18:14:00) 

Помогите, пожалуйста. Вопрос довольно глупый...

Есть база на Excel, нужно отобрать первые 5 записей.

Подключаюсь к Excelю с помощью ADO.
Пытаюсь отобрать все записи - все работает.
Пытаюсь отобрать первые 5 записей - не работает (отбираются все).
Запрос, который я использую, я смоделировал в Access -
"SELECT TOP 5 * FROM [Новости$] ORDER BY ""Дата"""

Что тут не так и как отобрать-таки 5 записей?
Заранее огромное спасибо :)


sniknik   (2003-05-08 22:30:00) [1]

ну да действительно... хм. именно если на переходе с одной на другую и именно если в конце. забавно.
и тд. 5 и 6 и 7 и 8 .... записи имеют одинаковую дату. если первая влазит в предел (5) то и остальные подтягиваются.

но вообще че ты как маленький прямо. ну сделай ему еще поверх ограничение ...
SELECT TOP 5 * FROM (SELECT TOP 5 * FROM [Новости$] ORDER BY [Дата] DESC)
(внутреннее ограничение тогда вроде как не нужно но лутше оставить, чтобы 2 раза операции над полной выборкой не производить)


DmitryNekl   (2003-05-08 19:47:00) [2]

Тут проблемка обнаружилась - помогите разрешить. Есть таблица:
id, Дата, Заголовок, Текст.
Нужно отобрать первые пять записей, отсортированных по дате.
Я делаю так:
SELECT TOP 5 * FROM [Новости$] ORDER BY [Дата] DESC"

И проблема: если 5 и 6 записи имеют одинаковую дату, то отбираются 6 записей, а не 5 :(. Как бы отобрать все-таки 5 записей?

Заранее спасибо! :)


DmitryNekl   (2003-05-06 18:48:00) [3]

Это просто гениально! :)))))
Спасибо огромное!!!!!


sniknik   (2003-05-06 18:40:00) [4]

делай так
SELECT TOP 5 * FROM [Новости$] ORDER BY [Дата ]

но того ли ты хочеш? это сначала отсортирует а после выдаст 5 записей из отсортированого набора (не совсем первые)

истинно первые будет так
SELECT * FROM (SELECT TOP 5 * FROM [Новости$]) ORDER BY [Дата]
(сортирует потом уже их)


Наверх

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