Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Прямые запросы на 1С Предприятии 7.7

v7: Прямые запросы на 1С Предприятии 7.7
Я
   Alex2411
 
26.06.19 - 16:06
Добрый день, подскажите пожалуйста по запросу, делаю соединение таблиц но если в документе не заполнено поле   КлиентСпр - то эта строка совсем не выводиться, а мне бы хотелось что бы она выводилась но с пустой ячейкой

вот запрос

        ТекстЗапроса="
        |SELECT                    
        |  Док.IDDoc as [Док $Документ.Накладная],
        |  Жур.DOCNO as НомерДок,
        |  $Док.Клиент as Клиент,
        |  $СпрКл.ТорговыйПредставитель as [ТорговыйПредставитель $Справочник.Клиенты],
        |  $Док.Регион as Регион,
        |  $Док.Доставка as Доставка ,
        |  $Док.ВидОтгрузки as ВидОтгрузки ,
        |  $Док.ДатаОтгрузки as ДатаОтгрузки,
        |  ROUND (SUM ($ДокС.Вес),0) as Вес ,
        |  ROUND(SUM ($ДокС.Объем),2) as Объем,
        |  SUM ($ДокС.Количество) as Единиц,
        |  SUM ($ДокС.КоличествоОпераций) as Операций,
        |  Count($ДокС.Количество) as Строк
        |FROM
        |  $Документ.Накладная as Док
        |INNER JOIN
        |    _1SJourn as Жур ON Жур.IDDoc = Док.IDDoc
        |                       AND (Жур.Date_Time_IDDoc  BETWEEN :Дата1 AND :Дата2~)
        |                       AND  (Жур.ISMARK = 0)
        |                       AND  ($Док.ОжидаетОбработки=1)  
        |INNER JOIN
        |  $ДокументСтроки.Накладная as ДокС ON Док.IdDoc=ДокС.IdDoc  
        |INNER JOIN
        |  $Справочник.Клиенты as СпрКл ON СпрКл.Id=$Док.КлиентСпр
        |GROUP BY
        |    Док.IDDoc, Жур.DOCNO, $Док.Клиент, $Док.Регион, $Док.Доставка , $Док.ВидОтгрузки, $Док.ДатаОтгрузки, $СпрКл.ТорговыйПредставитель  
        |";
 
 
   Вафель
 
1 - 26.06.19 - 16:06
LEFT JOIN
   Salimbek
 
2 - 26.06.19 - 16:29
(0) Вот, товарищ в (1) правильно пишет.
Поясню, INNER - это значит - обязательное соответствие - т.е. и в первой таблице должен быть ключ и во второй. А так как у тебя чего-то нет, то это и отбрасывается
LEFT - Это значит из первой таблицы берешь вообще все строки, и к чему найдешь соответствие во второй - то достраиваешь, а чего не найдешь, в тех строчках будет NULL
Поэтому последний join лучше переписать на LEFT
   Mikeware
 
3 - 26.06.19 - 16:33
   Alex2411
 
4 - 26.06.19 - 17:32
Спасибо большое, я думаю эта статья будет полезна не только мне)))
   Mikeware
 
5 - 26.06.19 - 17:35
(4) какая?
   Злопчинский
 
6 - 27.06.19 - 14:56
(3) и че на этой картинке? лефтджойн - выбрасываем правую таблицу вообще как будто ее и нет. и получаем одну левую таблицу всю. как на рисунке - она же вся в результате. без всяких добавок от правойц таблицы.
   ДенисЧ
 
7 - 27.06.19 - 14:58
(5) 282? )))
   ДенисЧ
 
8 - 27.06.19 - 14:58
(6) А теперь предствавь, что круги эти - всего лишь набор полей, по которым объединяется.. За ними есть ещё могуча кучка данных...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует