Имя: Пароль:
1C
1С v8
Соединение по двум полям
0 wmonref
 
31.08.15
10:38
Приветствую! Помогите разобраться с запросом. Есть Начисления по книгам:

Книга1 | Тираж 100 | АвторА  | 500
Книга1 | Тираж 100 | АвторБ  | 400

Книга2 | Тираж 200 | АвторВ  | 100
Книга2 | Тираж 200 | АвторГ  | 200
Книга2 | Тираж 200 | АвторД  | 300

и Выдача по книгам:

Книга1 | АвторА  | 500
Книга1 | АвторБ  | 500

Книга2 | АвторБ  | 100
Книга2 | АвторВ  | 200
Книга2 | АвторГ  | 300

Мне надо все это соеденить чтоб получалось:

Книга1 | Тираж 100 |  АвторА |  500(нач) |  500(выд)
Книга1 | Тираж 100 |  АвторБ |  400(нач) |  400(выд)

Книга2 | Тираж 200 |  АвторВ |  100(нач) |  100(выд)
и.т.д

А у меня получается:

Книга1 | Тираж 100 |  АвторА |  500(нач) |  500(выд)
Книга1 | Тираж 100 |  АвторА |  500(нач) |  400(выд)
Книга1 | Тираж 100 |  АвторБ |  400(нач) |  400(выд)
Книга1 | Тираж 100 |  АвторБ |  400(нач) |  500(выд)

Вот код:

ВЫБРАТЬ
        НачислениеОсновная.Ссылка.Заказ КАК Заказ,
       НачислениеОсновная.Ссылка.Тираж КАК Тираж,
       НачислениеОсновная.Автор КАК Автор,
       НачислениеОсновная.Сумма КАК Начислено
   ПОМЕСТИТЬ ВТ_НАЧ
   ИЗ
       Документ.НачислениеГонораров.Основная КАК НачислениеОсновная
   ГДЕ
       НачислениеОсновная.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
   ;
   ВЫБРАТЬ
       НаправлениеОсновная.Ссылка.Заказ КАК ЗаказНап,
        НаправлениеОсновная.Автор КАК АвторНап,
       НаправлениеОсновная.Сумма КАК Выплачено
   ПОМЕСТИТЬ ВТ_ВЫП
   ИЗ
       Документ.НаправлениеНаВыплатуГонораров.Основная КАК НаправлениеОсновная
   ГДЕ
       НаправлениеОсновная.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
   ;
   ВЫБРАТЬ
       ВТ_НАЧ.Заказ КАК Заказ,
       ВТ_НАЧ.Тираж КАК Тираж,
       ВТ_НАЧ.Автор КАК Автор,
       ВТ_НАЧ.Начислено КАК Начислено,
       ВТ_ВЫП.Выплачено КАК Выплачено
   ИЗ
       ВТ_НАЧ КАК ВТ_НАЧ
   ЛЕВОЕ СОЕДИНЕНИЕ
       ВТ_ВЫП КАК ВТ_ВЫП
   ПО
       ВТ_НАЧ.Заказ = ВТ_ВЫП.ЗаказНап
   СГРУППИРОВАТЬ ПО
       ВТ_НАЧ.Заказ,
       ВТ_НАЧ.Тираж,
       ВТ_НАЧ.Автор,
       ВТ_НАЧ.Начислено,
       ВТ_ВЫП.Выплачено
1 AllJoke
 
31.08.15
10:40
Левое соединение
2 AllJoke
 
31.08.15
10:40
+ По Книге и Тиражу.
3 AllJoke
 
31.08.15
10:40
оу оу, по автору, не по тиражу
4 wmonref
 
31.08.15
10:42
(3) т.е еще одно Левое соединение с ВТ_ВЫП по автору?
5 wmonref
 
31.08.15
10:45
(4) Без изменений...
6 AllJoke
 
31.08.15
10:48
а зачем вообще выбирать помещать? Сразу соединить?
7 AllJoke
 
31.08.15
10:49
(5) покажи код соединения.
8 wmonref
 
31.08.15
10:53
ВЫБРАТЬ  
          НачислениеОсновная.Ссылка.Заказ КАК Заказ,
        НачислениеОсновная.Ссылка.Тираж КАК Тираж,
        НачислениеОсновная.Автор КАК Автор,
        НачислениеОсновная.Сумма КАК Начислено,
        НаправлениеОсновная.Сумма КАК Выплачено
    ИЗ
        Документ.НачислениеГонораров.Основная КАК НачислениеОсновная
    ЛЕВОЕ СОЕДИНЕНИЕ
        Документ.НаправлениеНаВыплатуГонораров.Основная КАК НаправлениеОсновная
    ПО
        НачислениеОсновная.Ссылка.Заказ = НаправлениеОсновная.Ссылка.Заказ
    ЛЕВОЕ СОЕДИНЕНИЕ
        Документ.НаправлениеНаВыплатуГонораров.Основная КАК НаправлениеОсновная1
    ПО
        НачислениеОсновная.Автор = НаправлениеОсновная1.Автор
    ГДЕ
        НачислениеОсновная.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода

    УПОРЯДОЧИТЬ ПО
        НачислениеОсновная.Ссылка.Заказ
    АВТОУПОРЯДОЧИВАНИЕ
9 AllJoke
 
31.08.15
10:55
ПО
        НачислениеОсновная.Автор = НаправлениеОсновная1.Автор
и НачислениеОсновная.Заказ = НаправлениеОсновная1.Заказ
10 13_Mult
 
31.08.15
10:55
Сегодня день запросов )
11 AllJoke
 
31.08.15
10:56
(10) +1, тоже заметил ))
12 wmonref
 
31.08.15
10:58
(9) В поле Выплачено одни NULL
13 wmonref
 
31.08.15
11:11
(9) Что скажите?
14 Lexey_
 
31.08.15
11:15
(13) поражены твоей неудачей (с)
итоговый текст запроса не покажешь?
15 AllJoke
 
31.08.15
11:16
Книга1 | Тираж 100 |  АвторБ |  400(нач) |  400(выд)  кау  етбя тут будет выдано 400, если во второй таблице выдано 500???
16 wmonref
 
31.08.15
11:17
(15) Там ошибка, извините...
Должно быть :

Книга1 | АвторА  | 500
Книга1 | АвторБ  | 400
17 wmonref
 
31.08.15
11:20
(14)

Текст в (8)

И в результате запроса ВСЕ значения в поле Выплачено равны NULL
18 AllJoke
 
31.08.15
11:25
19 AllJoke
 
31.08.15
11:25
Запрос.Текст = "Выбрать Книга КАК КнНач, Тираж, Автор КАК АвтНач, Сумма КАК СуммаНач Поместить ВТ_Нач Из &КнНач КАК Начисленные;
                    |Выбрать Книга КАК КнВыд, Автор КАК АвтВыд, Сумма КАК СуммаВыд Поместить ВТ_Выд Из &Кнвыд Как Выданные;
                    |Выбрать КнНач, Тираж, АвтНач, СуммаНач, СуммаВыд ИЗ ВТ_нач ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Выд ПО ВТ_Нач.АвтНач = ВТ_Выд.АвтВыд";
    Запрос.УстановитьПараметр("КнНач", Начислено);
    Запрос.УстановитьПараметр("КнВыд", Выдано);
20 wmonref
 
31.08.15
11:46
(19) http://i004.radikal.ru/1508/c5/cd5c3b6af118.jpg

ХЗ почему так....
21 wmonref
 
31.08.15
11:47
22 wmonref
 
31.08.15
12:05
(19) Можетбыть из-за того что некоторым авторам деньги начислялись но не выдавались?
23 wmonref
 
31.08.15
12:07
(19) Потому что именно так оно и есть.. Для некоторых авторов действительно поле Выплачено = NULL, но не для всех же!
24 wmonref
 
31.08.15
12:29
Ну что, есть у кого-то какие-то идеи??
25 AllJoke
 
31.08.15
12:32
Показывай запрос свой паолностью.
26 AllJoke
 
31.08.15
12:34
а книга с таким автором точно была выдана??
27 wmonref
 
31.08.15
12:40
(26) 100%

Запрос делаю в консоли.

    ВЫБРАТЬ  
          НачислениеОсновная.Ссылка.Заказ КАК Заказ,
        НачислениеОсновная.Ссылка.Тираж КАК Тираж,
        НачислениеОсновная.Автор КАК Автор,
        НачислениеОсновная.Сумма КАК Начислено
    ПОМЕСТИТЬ ВТ_НАЧ
    ИЗ
        Документ.НачислениеГонораров.Основная КАК НачислениеОсновная
    ГДЕ
        НачислениеОсновная.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода    
        ;
    ВЫБРАТЬ
        НаправлениеОсновная.Ссылка.Заказ КАК ЗаказВыд,
         НаправлениеОсновная.Автор КАК АвторВыд,
        НаправлениеОсновная.Сумма КАК СуммаВыд
    ПОМЕСТИТЬ ВТ_ВЫД
    ИЗ
        Документ.НаправлениеНаВыплатуГонораров.Основная КАК НаправлениеОсновная
    ;
    ВЫБРАТЬ
        Заказ КАК Заказ,
        Тираж КАК Тираж,
        Автор КАК Автор,
        Начислено КАК Начислено,
        СуммаВыд КАК Выдано
    ИЗ
        ВТ_НАЧ    
    ЛЕВОЕ СОЕДИНЕНИЕ
        ВТ_ВЫД
    ПО
        ВТ_НАЧ.Автор = ВТ_ВЫД.АвторВыд
28 AllJoke
 
31.08.15
12:40
Запрос правильный. В данных беда. Проверяй данные.
29 AllJoke
 
31.08.15
12:41
Убери параметры. Или за весь период сотвори.
30 wmonref
 
31.08.15
12:50
(29) Без изменений...

Проверил

ВЫБРАТЬ
    НаправлениеОсновная.Ссылка.Заказ КАК ЗаказВыд,
    НаправлениеОсновная.Автор КАК АвторВыд,
    НаправлениеОсновная.Сумма КАК СуммаВыд
ИЗ
        Документ.НаправлениеНаВыплатуГонораров.Основная КАК НаправлениеОсновная

Цифры в "СуммаВыд" точно есть
31 BuHu
 
31.08.15
12:51
тип реквизитов "Автор" во обеих табличных частях одинаков ?
32 AllJoke
 
31.08.15
12:53
ВЫБРАТЬ
        НаправлениеОсновная.Ссылка.Заказ КАК ЗаказВыд,
         НаправлениеОсновная.Автор КАК АвторВыд,
        НаправлениеОсновная.Сумма КАК СуммаВыд

    ИЗ
        Документ.НаправлениеНаВыплатуГонораров.Основная КАК НаправлениеОсновная
где          НаправлениеОсновная.Автор В
(ВЫБРАТЬ  


        НачислениеОсновная.Автор КАК Автор,


    ИЗ
        Документ.НачислениеГонораров.Основная КАК НачислениеОсновная ГДЕ
        НачислениеОсновная.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода )

Что возвращает?
33 wmonref
 
31.08.15
12:53
(31)  Ой пля.... :)
34 wmonref
 
31.08.15
12:56
Всем спасибо большое!!
Тип реквизитов "Автор" разные в ТЧ документов...
35 wmonref
 
31.08.15
12:56
(рукалицо)
36 AllJoke
 
31.08.15
12:57
ммда...