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

Откуда:
Сообщений: 116
Есть таблица T1 с полями: name, f1, f2. Поле f1 заполнено разными целыми числами, которые в разрезе поля name упорядочены по возрастанию; в поле f2 нули. Как написать запрос или несколько запросов, чтобы заполнить поле f2 так, чтобы в результате поля f1, f2 образовали интервалы?
В прикрепленном файле примеры таблиц и понятней.

К сообщению приложен файл (ТаблицаПример.xls - 7Kb) cкачать
8 июл 13, 19:14    [14538231]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить поле, чтобы получились интервалы?  [new]
serpentariy
Member

Откуда:
Сообщений: 265
declare @table table(NAME char(2),	F1 int,	F2 int)
insert @table values ('N1',2,0),('N1',5,0),('N1',15,0),('N2',2,0),('N2',3,0),('N2',6,0)
select t1.NAME,t1.F1,(select min(F1)-1 from @table where NAME=t1.NAME and F1>t1.F1)
from @table t1
8 июл 13, 19:46    [14538303]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить поле, чтобы получились интервалы?  [new]
okwell5
Member

Откуда:
Сообщений: 116
serpentariy,
Да, все верно, получилось! Спасибо!
8 июл 13, 20:01    [14538344]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить поле, чтобы получились интервалы?  [new]
Добрый Э - Эх
Guest
okwell5,

если версия сервера позволяет, то LEAD / LAG тебе в помощь...
8 июл 13, 21:48    [14538657]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить поле, чтобы получились интервалы?  [new]
okwell5
Member

Откуда:
Сообщений: 116
Добрый Э - Эх,
на msdn только для MSSQL2012, а у меня 2008, не получится. Поэтому остается лишь первый вариант.
9 июл 13, 12:46    [14540515]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить