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

Откуда: Москва
Сообщений: 4951
Доброго дня коллеги!
Есть таблица с полем DateTime, раз в неделю может добавляться строго одна строка, но может и не добавляться.
Как можно красиво поджойнить таблицу саму на себя по условию по этому полю.
Текущее значение = значение из ближайшей предыдущей недели.
1 ноя 13, 14:39    [15065226]     Ответить | Цитировать Сообщить модератору
 Re: Ближайшая предыдущая неделя  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4951
Если бы недели шли непрерывно, то работало бы так
DATEPART(WEEK,DATEADD(WEEK,1,t2.dt)) = DATEPART(WEEK,t1.dt)

но могут и пропуски недель...
1 ноя 13, 14:46    [15065305]     Ответить | Цитировать Сообщить модератору
 Re: Ближайшая предыдущая неделя  [new]
efwewerw
Guest
ЕвгенийВ,

как вариант:
declare @t table (dt datetime primary key, val int)

insert @t(dt, val) values ('20130101', 1), ('20140101', 2), ('20150101', 3)

select t.*, s.*
from @t t
outer apply (select top 1 * from @t tt where tt.dt < t.dt order by dt desc) s
1 ноя 13, 14:52    [15065356]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить