Имя: Пароль:
1C
1С v8
Дубли записей в запросе
0 Конфигуратор1с
 
24.07.12
16:31
Вот есть простенький запросик - в вт одна запись, в курсах валют 6, соединение выдает 36 записей. Где туплю?
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   КурсыВалют.Период,
   КурсыВалют.Валюта,
   СУММА(КурсыВалют.Курс) КАК Курс
ПОМЕСТИТЬ ВТКурсы
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют

СГРУППИРОВАТЬ ПО
   КурсыВалют.Период,
   КурсыВалют.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ.ДатаНачала,
   ВТ.ДатаОкончания,
   ВТ.Валюта,
   ВТКурсы.Курс
ИЗ
   ВТ КАК ВТ
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКурсы КАК ВТКурсы
       ПО ВТ.Валюта = ВТКурсы.Валюта
1 Aprobator
 
24.07.12
16:32
СрезПоследних
2 Конфигуратор1с
 
24.07.12
16:33
не подходит так как в прицнипе мне нужно соединение вида
ВЫБРАТЬ
   ВТ.ДатаНачала,
   ВТ.ДатаОкончания,
   ВТ.Валюта,
   ВТКурсы.Курс
ИЗ
   ВТ КАК ВТ
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКурсы КАК ВТКурсы
       ПО ВТ.Валюта = ВТКурсы.Валюта и Вт.ДатаНачала<ВТКурсы.Период и ВТ.ДатаОкончания>ВТКурсы.Период
3 mozzga
 
24.07.12
16:34
6*6 = 36
4 Конфигуратор1с
 
24.07.12
16:41
(3)это понятно, но я соединяю одну таблицу с другой. То есть 1*6=6. Откуда 36?
5 Конфигуратор1с
 
24.07.12
16:48
где все гуру запросов?
6 mozzga
 
24.07.12
16:52
(1) Прав
7 Конфигуратор1с
 
24.07.12
16:53
(6)неправ, мне нужна сумма ресурсов за период по конкретной валюте
8 Конфигуратор1с
 
24.07.12
16:54
Задача в чем, есть таблица 01.02.2012 29.02.2012 рубль - из регистра сведений нужно получить значения всех курсов валют для рубля за период с 01.02.2012 по 29.02.2012
9 Конфигуратор1с
 
24.07.12
17:00
так кто нибудь скажет почему дублируются записи которые не должны дублироваться?
10 viktor_vv
 
24.07.12
17:03
(9) Может таки в ВТ не одна запись ? Или в ВТУкурсы не 6 ? Другого объяснения вряд ли получится.
11 viktor_vv
 
24.07.12
17:04
И выведи в итоговый селект все поля из обеих таблиц, может на что подтолкнет.
12 Kashemir
 
24.07.12
17:06
ВЫБРАТЬ
   &НачалоПериода,
   КурсыВалютСрезПоследних.Валюта,
   КурсыВалютСрезПоследних.Курс,
   КурсыВалютСрезПоследних.Кратность
ПОМЕСТИТЬ ВсеЗаписи
ИЗ
   РегистрСведений.КурсыВалют.СрезПоследних(&НачалоПериода, ) КАК КурсыВалютСрезПоследних

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   КурсыВалют.Период,
   КурсыВалют.Валюта,
   КурсыВалют.Курс,
   КурсыВалют.Кратность
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
   КурсыВалют.Период МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВложенныйЗапрос.Валюта КАК Валюта,
   ВложенныйЗапрос.НачалоПериода КАК НачалоПериода,
   ВложенныйЗапрос.ПоКонецПериода,
   ВсеЗаписи.Курс,
   ВсеЗаписи.Кратность
ИЗ
   (ВЫБРАТЬ
       ВсеЗаписи.НачалоПериода КАК НачалоПериода,
       ВсеЗаписи.Валюта КАК Валюта,
       МИНИМУМ(ВсеЗаписи1.НачалоПериода) КАК ПоКонецПериода
   ИЗ
       ВсеЗаписи КАК ВсеЗаписи
           ЛЕВОЕ СОЕДИНЕНИЕ ВсеЗаписи КАК ВсеЗаписи1
           ПО ВсеЗаписи.Валюта = ВсеЗаписи1.Валюта
               И ВсеЗаписи.НачалоПериода < ВсеЗаписи1.НачалоПериода
   
   СГРУППИРОВАТЬ ПО
       ВсеЗаписи.НачалоПериода,
       ВсеЗаписи.Валюта) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЗаписи КАК ВсеЗаписи
       ПО ВложенныйЗапрос.НачалоПериода = ВсеЗаписи.НачалоПериода
           И ВложенныйЗапрос.Валюта = ВсеЗаписи.Валюта

УПОРЯДОЧИТЬ ПО
   Валюта,
   НачалоПериода
13 Конфигуратор1с
 
24.07.12
17:09
(10) таки в вт была проблема. Каюсь. можете меня забросать гнилыми помидорами. Всем большое спасибо