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

Откуда:
Сообщений: 4
Всем привет!

Недавно начал работать с SQL Server.
На данный момент требуется решение совсем легкой задачи (как мне сказали).

Имеется 2 таблицы:

1)
DateList	Day	Price
23.10.2012	понедельник	37,50
24.10.2012	вторник	37,36
25.10.2012	среда	37,23
26.10.2012	четверг	37,09
27.10.2012	пятница	36,95
30.10.2012	понедельник	36,82
31.10.2012	вторник	36,68
01.11.2012	среда	36,55
02.11.2012	четверг	36,41
03.11.2012	пятница	36,27
06.11.2012	понедельник	36,14
07.11.2012	вторник	36,00
08.11.2012	среда	35,86
09.11.2012	четверг	35,73


2)
DateList	Day
23.10.2012	понедельник
24.10.2012	вторник
25.10.2012	среда
26.10.2012	четверг
27.10.2012	пятница
28.10.2012	суббота
29.10.2012	воскресенье
30.10.2012	понедельник
31.10.2012	вторник
01.11.2012	среда
02.11.2012	четверг
03.11.2012	пятница
04.11.2012	суббота
05.11.2012	воскресенье
06.11.2012	понедельник
07.11.2012	вторник
08.11.2012	среда
09.11.2012	четверг


Требуется подтянуть Price к таблице 2, где в выходные и праздники значение будет равно предыдущей дате в таблице 1.

Я видел в интернете как эту задачу решали с помощью цикла, но цикл не подходит.
30 мар 14, 14:21    [15807180]     Ответить | Цитировать Сообщить модератору
 Re: Возврат предыдущего значения даты относительно другого столбца  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
SELECT DateList,Day
 ,Price=(SELECT TOP(1) T1.Price FROM T1 WHERE T1.DateList<=T2.DateList ORDER BY T1.DateList DESC)
FROM T2;
SELECT T2.DateList,T2.Day,T1.Price
FROM T2
CROSS APPLY(SELECT TOP(1) T1.Price FROM T1 WHERE T1.DateList<=T2.DateList ORDER BY T1.DateList DESC) T1;
30 мар 14, 14:39    [15807214]     Ответить | Цитировать Сообщить модератору
 Re: Возврат предыдущего значения даты относительно другого столбца  [new]
Pantomim
Member

Откуда:
Сообщений: 4
iap, thx )
30 мар 14, 15:06    [15807273]     Ответить | Цитировать Сообщить модератору
 Re: Возврат предыдущего значения даты относительно другого столбца  [new]
Добрый Э - Эх
Guest
Pantomim,

если версия сервера позволяет, то можно заюзать LEAD/LAG.
31 мар 14, 05:28    [15809103]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить