Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Нумерация записей в запросе


Автор: Митрофан 18.1.2006, 14:14
Подскажите как произвести нумерацию в запросах

Автор: Akina 18.1.2006, 15:01
В этом нет ровным счетом никакого смысла. Если тебе нужно отображать порядковый номер на форме или в отчете - их средствами и делай. Незачем перегружать запрос.

Автор: Митрофан 18.1.2006, 15:19
Проста в форме выводится починенный запрос

Автор: Akina 18.1.2006, 15:27
Слушай, ты хоть читаешь что пишешь??? починенный у него запрос, понимаешь... отремонтированный...

При выводе подчиненного запроса связь с основным делают ИСКЛЮЧИТЕЛЬНО на основе (псевдо)ключевых полей. Связь должна существовать до, а не рождаться в процессе.

Автор: Митрофан 18.1.2006, 15:33
Ладно тебе ты можешь сказать есть возможность это сделать или нет при помощи SQL а где я её буду показывать это чиста мая проблема

Автор: Akina 18.1.2006, 16:30
Код

SELECT Count(T1.ID) AS [Num], T1.ID, T1.xVal
FROM MyTable AS T1, MyTable AS T2
WHERE ((T1.ID)>=(T2.ID))
GROUP BY T1.ID, T1.xVal;

где вместо T1.xVal перечислены все остальные необходимые поля - причем и в SELECT, и в GROUP BY.

PS. Только учти - на более-менее приличных массивах данных это будет тормозить ну просто безбожно.

PPS. Можно слегка оптимизировать

Код

SELECT T4.Num, T3.*
FROM MyTable AS T3
INNER JOIN
(
SELECT Count(T1.ID) AS [Num], T1.ID
FROM MyTable AS T1, MyTable AS T2
WHERE ((T1.ID)>=(T2.ID))
GROUP BY T1.ID
) AS T4
ON T3.ID = T4.ID;

на 4 и более полях уже будет некоторый выигрыш.

PPPS. Но все равно это можно назвать только одним словом - [censored].

Автор: Митрофан 18.1.2006, 17:11
Спосибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)