Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.29;
Скачать: CL | DM;

Вниз

ADO и SQL (вопрос по SQL)   Найти похожие ветки 

 
DmitryNekl ©   (2003-05-06 18:14) [0]

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

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

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

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


 
sniknik ©   (2003-05-06 18:40) [1]

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

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

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


 
DmitryNekl ©   (2003-05-06 18:48) [2]

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


 
DmitryNekl ©   (2003-05-08 19:47) [3]

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

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

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


 
sniknik ©   (2003-05-08 22:30) [4]

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

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



Страницы: 1 вся ветка

Текущий архив: 2003.05.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
1-94968
edicon
2003-05-18 19:23
2003.05.29
Опять ExcelApplication


14-95120
anton2v
2003-05-12 13:30
2003.05.29
Доступ к SQL Server из инета


3-94747
Andrey-k
2003-05-10 20:40
2003.05.29
Win9.x и клиент InterBase для них


1-94827
Mr. xXx
2003-05-19 15:09
2003.05.29
Why it causes a mistake :


14-95021
Пастор
2003-05-11 18:31
2003.05.29
Память, занимаемая программой