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

Откуда:
Сообщений: 11
Собсвенно есть табличка (упрошенно):
create table [tickets]
(
    [id] int identity(1,1),
    [createdate] datetime default NOW(),
    [status]       varchar(25) default 'new',
    [numinfifo] int default 0
)
на каком-то этапе формируется очередь
SELECT * FROM [tickets] WHERE [status]='нужный_статус' ORDER BY [createdate] ASC
хотелось бы одним запросом записать в поле numinfifo номер записи в резульате прошлого запроса.
незнаю как это сделать...
29 авг 09, 14:19    [7593444]     Ответить | Цитировать Сообщить модератору
 Re: update - записать номер записи в очереди  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3197
pumpurumer
default NOW()
Это вы с какой СУБД, пардон, работаете? Будьте добры,
select @@version
в студию.
29 авг 09, 14:33    [7593461]     Ответить | Цитировать Сообщить модератору
 Re: update - записать номер записи в очереди  [new]
pumpurumer
Member

Откуда:
Сообщений: 11
sqlexpress 2005
29 авг 09, 15:50    [7593565]     Ответить | Цитировать Сообщить модератору
 Re: update - записать номер записи в очереди  [new]
pumpurumer
Member

Откуда:
Сообщений: 11
мб в синтаксисе ошибся, но данное поле заполняется текущим временем при создании записи.

PS: ненашол кнопку "редактировать"
29 авг 09, 15:53    [7593570]     Ответить | Цитировать Сообщить модератору
 Re: update - записать номер записи в очереди  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
WITH CTE AS
(
 SELECT ROW_NUMBER()OVER(ORDER BY [createdate]) N, *
 FROM [tickets]
 WHERE [status]='нужный_статус'
)
UPDATE CTE
SET [numinfifo]=N;
?
29 авг 09, 18:08    [7593783]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить