| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Помогите составить запрос к БД |
| Автор: bankir 16.10.2007, 22:38 |
| подскажите пожалуйста ибо сам никак не могу додуматься. есть БД на SQL2000 называется "base" в ней 2 таблицы tabl1 и tabl2. В tabl1 четыре поля "A, B, C, D" а в tabl2 три поля "B1, C1, D1". Собственно задача заключается в переносе данных из tabl2 в tabl1 (B<-B1, C<-C1, D<-D1), но в таблицу 1 надо в поле A записать результат (максимальное число из поля A tabl1+1) автоинкрементальное поле здесь не подходит. И еще, это все надо делать в одной транзакции. Заранее благодарен. |
| Автор: Lunatikus 17.10.2007, 10:56 |
| была бы возможность получить из table2 перечисление номеров записей,можно было бы,но как сделать такой запрос не знаю.Если же тебе необязательно,что бы номера вставляемых строк следовали четко друг за другом без пробелов в значениях(т.е. не 1,2,3,4... а вроде 1,4,6,8,5...),тогда проще,запрос можно составить на основе любого уникального поля в table2. |
| Автор: bankir 17.10.2007, 11:58 |
| спасибо за ответ, но я все же решил делать это через автоинкремент. с ним конечно будет труднее в некоторых местах работать но в остальном будет гораздо легче. не надо будет сильно мудрить. А по поводу последовательных номеров - мне очень важно чтобы они шли друг за другом. Получается, что у меня один пользователь добавляет несколько записей и другой пользователь добавляет несколько записей одновременно. Мне очень важно чтобы номера для одного пользователя шли последовательно (1,2,3,4) и для другого последовательно (5,6,7,8). Нельзя чтобы они шли вперемешку. С автоинкрементом я не хотел работать потому что боялся, что с ним будет трудно работать когда я буду резервировать номера, а потом обновлять их через update. Не хотелось бы чтобы в нумерациях потом были пустые окна (1,2,3,8,9,10). Например если я зарезервирую номера 15,16,17, а последний будет 10 то получится окно в 4 значения. |
| Автор: bankir 18.10.2007, 07:58 |
| всем спасибо |