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

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

помогите создать SQL запрос


Страницы:   1 2 3 4

toropoff ©   (2011-10-10 18:16:00) 

есть таблица с полем ID.
нумерую сам при добавлении.
необходимо произвести перенумерацию упорядочив по определенному полю, например naimen.
база Access.
в таблице около полусотни тысяч записей.
путем перебора очень долго получается.
хотелось бы одним запросом перенумеровать поле ID значением номера строки.
что-то типа
UPDATE myTable SET id =  номер записи
но как-то ещё учесть упорядочивание по полю naimen

простите что прошу готовое решение, никак не получается


armstrong   (2011-10-10 23:08:00) [61]

нужно автоматически пронумеровать записи.
автонумерация не подходит.
путем перебора очень долгий процесс..
пытался вынести в отдельный поток, но все равно нужно синхронизировать функцию смены ID значения, один фиг минут 20 проход выходит в тысяч 50 записей.
вот думаю как бы в одну команду через update это сделать.
ну на фокспро в запросе RecNo и есть номер записи..
а тут х.з. даже ..


stas   (2011-10-10 22:47:00) [62]


> armstrong   (10.10.11 22:08) [10]
> да я вот и думаю как-то так:
>

нет  такой функции.
И зачем это вообще нужно?


armstrong   (2011-10-10 22:26:00) [63]

эх.. да гуглил уже..
а самому слабо что-то, тямы не хватает..


Inovet   (2011-10-10 22:22:00) [64]

В Инете было несколько вариантов решения, может и на ДМ было.


armstrong   (2011-10-10 22:08:00) [65]

да я вот и думаю как-то так:

UPDATE mytable a SET ID =
(SELECT номер записи? FROM  mytable b WHERE a.ID=b.ID)


Омлет   (2011-10-10 21:53:00) [66]

> armstrong   (10.10.11 21:39) [8]
> мне не нужен счетчик.
> мне нужно одним махом через UPDATE  занести в поле RecNo (Integer) порядковый номер записи.


Чтобы получить твой порядковый номер, надо сначала построить выборку. Т.е. без временной таблицы не обойтись.


armstrong   (2011-10-10 21:39:00) [67]

Сергей М. ©,
при select * from mytable порядок записей будет как физически они сохранены. или не так?
ну не в этом дело..

Омлет ©, мне не нужен счетчик.

мне нужно одним махом через UPDATE  занести в поле RecNo (Integer) порядковый номер записи.


Омлет   (2011-10-10 21:17:00) [68]

http://www.trevor.easynet.co.uk/AccFAQ/queries.htm#counter


Сергей М.   (2011-10-10 21:07:00) [69]


> физический номер записи


Не кури эту траву.


armstrong   (2011-10-10 20:37:00) [70]

да в том то и дело, что это не единоразово..
да и счетчик мне никак не подходит.

а если без учета сортировки, то как будет выглядеть
UPDATE mytable  SET ID = физический номер записи ?


stas   (2011-10-10 20:23:00) [71]

Если это нужно сделать единоразово, то сделайте так:
select kod, naimen into New_table from mytable  order by Naimen
Потом удалите mytable, создайте в таблице New_table  поле типа счетчик назовите ID и переименуйте ее в mytable.


armstrong   (2011-10-10 20:13:00) [72]

простите что вероятно неверно описал проблему.
ID поле не autoincrement а обычное.


> Заведи рядом поле, его нумеруй как угодно


вот это и хотел узнать, как можно одним запросом установить значение этого поля соответсвующее порядковому номеру записи, при упорядочивании этой таблицы по другому полю.

тоесть  есть:  kod, naimen
1  петя
2  вася
3  антон

должно
1  антон
2  вася
3  петя


Ega23   (2011-10-10 19:35:00) [73]

id нельзя менять.
Заведи рядом поле, его нумеруй как угодно.


toropoff   (2011-10-10 18:22:00) [74]

крутится что то такое

UPDATE mytable a SET ID =
(SELECT номер записи? FROM  mytable b WHERE a.ID=b.ID ORDER by Naimen)

не, бред какой-то..


Страницы:   1 2 3 4

Наверх

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