Имя: Пароль:
1C
1С v8
Запрос который выводит курсы валют по списку определенных дат.
0 siggoron
 
19.01.12
20:05
Как написать оптимально запрос который выводит курсы валют по списку определенных дат?
1 Rie
 
19.01.12
20:08
(0) А какой есть неоптимальный вариант?
2 ДенисЧ
 
19.01.12
20:09
сложи даты в ВТ и объединяй...
3 siggoron
 
19.01.12
20:09
(1) :), сижу и голову ломаю - может его вообще и нет
4 siggoron
 
19.01.12
20:11
(2) т.е. объединяй, а как с курсами не установленными на дату (как взять последнюю)
5 echo77
 
19.01.12
20:11
(2) Пример можно, как сложить даты в ВТ?
6 Rie
 
19.01.12
20:11
(2) Зачем в ВТ? И зачем объединять?
ВЫБРАТЬ
   Валюты.Курс,
   Валюты.Кратность
ИЗ
   РегистрСведений.Валюты КАК Валюты
ГДЕ
   Валюты.Период В (&МассивДат)
7 Rie
 
19.01.12
20:12
+(6) Тьфу, вру. Надо же даты на, а не даты установки курса...
8 echo77
 
19.01.12
20:12
9 Rie
 
19.01.12
20:12
(5)
ВЫБРАТЬ ... ПОМЕСТИТЬ В ...
10 Живой Ископаемый
 
19.01.12
20:12
2(6) но тогда если в РС нет записи на эту дату, то курс мы не получим... а ему возможно нужен.. Впрочем это уже мои домыслы...
11 siggoron
 
19.01.12
20:13
(7) воооооооооот
12 siggoron
 
19.01.12
20:13
(10) совершенно верно
13 echo77
 
19.01.12
20:17
(9) Пример, как по переданному параметру - Список значений-дат создать временную таблицу и поместить туда в записи даты можно?
14 Rie
 
19.01.12
20:18
(13) Легко. Создаёшь таблицу значений, заполняешь её из списка значений, передаёшь как параметр в запрос.
15 siggoron
 
19.01.12
20:23
(8) большое спс

ВЫБРАТЬ
   Таб1.СсылкаДок,
   Таб1.ДатаДок,
   Таб1.ВалютаДок,
   Таб2.Курс
ИЗ
   (ВЫБРАТЬ
       ЗаказПокупателя.Ссылка КАК СсылкаДок,
       ЗаказПокупателя.Дата КАК ДатаДок,
       ЗаказПокупателя.ВалютаДокумента КАК ВалютаДок,
       МАКСИМУМ(Валюты.Период) КАК ПериодДок
   ИЗ
       Документ.ЗаказПокупателя КАК ЗаказПокупателя
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Валюты
           ПО (Валюты.Период <= ЗаказПокупателя.Дата)
               И (Валюты.Валюта = ЗаказПокупателя.ВалютаДокумента)
   
   СГРУППИРОВАТЬ ПО
       ЗаказПокупателя.Ссылка,
       ЗаказПокупателя.Дата,
       ЗаказПокупателя.ВалютаДокумента) КАК Таб1
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Таб2
       ПО Таб1.ПериодДок = Таб2.Период
           И Таб1.ВалютаДок = Таб2.Валюта
16 catena
 
19.01.12
20:23
(13)
"Выбрать
ДатаВремя("+Формат(ляляля[ш],"гггг,мм,дд")+")поместить тзДаты
Объединить все
.....
17 Очкарик
 
19.01.12
20:24
(15) там недостаток. Если не будет курса на конкретную дату - будет прогал
18 catena
 
19.01.12
20:34
(17)Это почему?
19 kosts
 
19.01.12
20:35
(17) вроде правильно
20 siggoron
 
19.01.12
20:38
(17) нет всё 100% верно
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн