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

Откуда: Москва
Сообщений: 7
Доброго дня!
В sql слабоват, для сторонней программы нужно, чтобы таблица с курсами не имела промежутков и пустое значение автоматически заполнялось предыдущим значением. Подскажите пож текст запроса.
30 сен 14, 12:42    [16638036]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
londinium
Member

Откуда: Киев
Сообщений: 1176
Вы бы хоть пример таблицы привели
30 сен 14, 12:43    [16638048]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
_djХомяГ
Guest
Зачем городить огород
Пусть сторонняя программа определяет курс на дату исходя из текущих значений (без каких то манипуляций)
30 сен 14, 12:45    [16638061]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
Glory
Member

Откуда:
Сообщений: 104760
hort77
В sql слабоват, для сторонней программы нужно, чтобы таблица с курсами не имела промежутков и пустое значение автоматически заполнялось предыдущим значением. Подскажите пож текст запроса.

И что должно получится при пустой таблице курсов ?
Все даты от сотворения Земли ?
30 сен 14, 12:46    [16638062]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
Jaffar
Member

Откуда:
Сообщений: 633
Glory,
дайте-ка я угадаю.

select c.Data, v.Name, cr.CursValue
from t_calendar c with(nolock)
cross join t_Valuta   v with(nolock)
outer apply(select top 1 cr.CursValue
			from t_Curs cr with(nolock)
			where
					cr.IDValuta = v.ID
			and		cr.Data <= c.Data
			order by cr.Data desc /**/) cr
where
		c.Data between @Date1 and @Date2
order by 1, 2
30 сен 14, 12:55    [16638118]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
hort77
Member

Откуда: Москва
Сообщений: 7
Да, действительно, вот пример:
вход
01.02.14 USD 35.88
03.02.14 USD
04.02.14 USD 35.94
05.02.14 USD 36.16
06.02.14 USD 35.66
07.02.14 USD 35.42
08.02.14 USD 35.3
10.02.14 USD
11.02.14 USD 35.46

выход
01.02.14 USD 35.88
02.02.14 USD 35.88
03.02.14 USD 35.88
04.02.14 USD 35.94
05.02.14 USD 36.16
06.02.14 USD 35.66
07.02.14 USD 35.42
08.02.14 USD 35.3
09.02.14 USD 35.3
10.02.14 USD 35.3
11.02.14 USD 35.46
30 сен 14, 14:17    [16638700]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
hort77
Member

Откуда: Москва
Сообщений: 7
_djХомяГ,
там сложнее это проделать

Glory,
пустой она никогда не будет
30 сен 14, 14:19    [16638715]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
Glory
Member

Откуда:
Сообщений: 104760
hort77
выход
01.02.14 USD 35.88
02.02.14 USD 35.88
03.02.14 USD 35.88
04.02.14 USD 35.94
05.02.14 USD 36.16
06.02.14 USD 35.66
07.02.14 USD 35.42
08.02.14 USD 35.3
09.02.14 USD 35.3
10.02.14 USD 35.3
11.02.14 USD 35.46


А где курс до 01.02.14-го ? И после 11.02.14го ?

hort77
пустой она никогда не будет

Хорошо.
Что должно быть на выходе для исходных данных из одной записи ?
05.02.14 USD 36.16
30 сен 14, 14:23    [16638741]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
hort77
Member

Откуда: Москва
Сообщений: 7
Glory,
до 1 и после 11 также имеются данные, вплоть до текущего дня.
Если это поможет решению, данные берутся из таблицы 1С, где уже загружены курсы.
30 сен 14, 14:33    [16638836]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
Glory
Member

Откуда:
Сообщений: 104760
hort77
до 1 и после 11 также имеются данные, вплоть до текущего дня.

Ну так вам показали вариант, где таблица-календарь со всеми датами соединена с имеющимися датами курсов
30 сен 14, 14:35    [16638847]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
hort77
Member

Откуда: Москва
Сообщений: 7
Glory,

в 1С базах нет таблицы-календарь, как можно обойтись без нее или как-то сгенерировать?
30 сен 14, 17:44    [16640279]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
Glory
Member

Откуда:
Сообщений: 104760
hort77
или как-то сгенерировать?

Ну так генерируйте.
Вам же показали принципиальное решение для вашего вопроса
А не то, как в 1С получить календарь
30 сен 14, 17:46    [16640292]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
hort77
Member

Откуда: Москва
Сообщений: 7
Glory,

не в курсе как генерировать средствами sql.
30 сен 14, 18:12    [16640408]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
hort77,

Вьюха для календаря
30 сен 14, 18:27    [16640467]     Ответить | Цитировать Сообщить модератору
 Re: Последовательное заполнение курсов валют  [new]
hort77
Member

Откуда: Москва
Сообщений: 7
a_voronin,
спасибо.

спасибо всем за ответы, буду пробовать.
30 сен 14, 18:34    [16640503]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить