![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите создать SQL запрос
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)
не, бред какой-то..