Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите со скриптом пожалуйста.  [new]
voronk
Member

Откуда: Оттуда...
Сообщений: 548
create table #tmp(
account_id int not null,
page int not null,
seq_no int identity)

insert into #tmp
select account_id, 0
from table


/* получилось */
123, 0, 1
122, 0, 2
.........
.........
.........
456, 0, 91
/***************/

как бы написать update, чтобы каждые 25 рекордов должны получить новую page, типа:
/*****************/
123, 1, 1
122, 1, 2
.........
563, 1, 25
789, 2, 26
.........
888, 2, 51
423, 3, 52

ну и т.д.

/******************/

Туды её в качель...
15 янв 05, 00:50    [1247151]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со скриптом пожалуйста.  [new]
(c)VIG
Member

Откуда:
Сообщений: 1507
update #tmp set page=1 +(seq_no-1)/25
15 янв 05, 01:22    [1247165]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со скриптом пожалуйста.  [new]
VladRUS.ca
Member

Откуда: Toronto
Сообщений: 1172
А можно ещё и так ( чтобы не думать про update ):
create table #tmp
(
    account_id int not null,
    page as ceiling(seq_no/25.0),
    seq_no int identity
)

-- test 
set nocount on
while ident_current('tempdb..#tmp') < 1000
    insert into #tmp(account_id) select ceiling(rand()*1000)
15 янв 05, 06:07    [1247259]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со скриптом пожалуйста.  [new]
voronk
Member

Откуда: Оттуда...
Сообщений: 548
Ребята, огромное спасибо, сейчас попробую оба варианта.

Туды её в качель...
16 янв 05, 00:35    [1247931]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со скриптом пожалуйста.  [new]
voronk
Member

Откуда: Оттуда...
Сообщений: 548
Работает, как швейцарские часы.

П.С.
Война окончена, всем спасибо.

Туды её в качель...
16 янв 05, 19:56    [1248271]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить