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

Помогите с запросом

Помогите с запросом
Я
   Alex-tlt
 
09.07.18 - 14:41
Суть такая. У меня есть два документа (РН и ДЗ). Надо сравнить номенклатуру и выбрать из ДЗ только те, которых нет в РН. Пишу такой запрос.

ВЫБРАТЬ
    ДополнительныеЗатратыСписокНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
    Документ.ДополнительныеЗатраты.СписокНоменклатуры КАК ДополнительныеЗатратыСписокНоменклатуры,
    Документ.РасходнаяНакладная КАК РасходнаяНакладная
ГДЕ
    ДополнительныеЗатратыСписокНоменклатуры.Ссылка = &СсылкаДок
    И ДополнительныеЗатратыСписокНоменклатуры.Номенклатура <> РасходнаяНакладная.СписокНоменклатуры.Номенклатура
    И РасходнаяНакладная.СписокНоменклатуры.Ссылка = &Ссылка

Если в условии делаю проверку на равенство, то все работает, но мне нужна не совпадающая номенклатура в документах, а наоборот. Ставлю <> и запрос выдает мне всю номенклатуру ДЗ.
Что я не так делаю? Подскажите пожалуйста.
 
 
   novichok79
 
1 - 09.07.18 - 14:42
(0) ДЗ левое соединение РН по ДЗ.Номенклатура = РН.Номенклатура Где РН.Номенклатура Есть NULL
   Малыш Джон
 
2 - 09.07.18 - 14:43
Ты все не так делаешь)

Используй левое соединение и поставь условие, где значение из правой таблицы есть null
   Alex-tlt
 
3 - 09.07.18 - 14:47
Спасибо, сейчас попробую. Пробовал соединениями, но на нулл не проверял.

Малыш Джон, а можешь сказать как правильно сделать?
А то я только разбираюсь, и многое не знаю...
   AceVi
 
4 - 09.07.18 - 14:53
Документ.ДополнительныеЗатраты.СписокНоменклатуры КАК  ДополнительныеЗатратыСписокНоменклатуры  ЛЕВОЕ СОЕДИНЕНИЕ ДополнительныеЗатратыСписокНоменклатуры,
    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладная
ПО ДополнительныеЗатратыСписокНоменклатуры.Номенклатура = РасходнаяНакладная.Номенклатура
ГДЕ РасходнаяНакладная.Номенклатура ЕСТЬ NULL
   Alex-tlt
 
5 - 09.07.18 - 15:06
ВЫБРАТЬ
    ДополнительныеЗатратыСписокНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
    Документ.ДополнительныеЗатраты.СписокНоменклатуры КАК ДополнительныеЗатратыСписокНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
        ПО ДополнительныеЗатратыСписокНоменклатуры.Номенклатура = РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
ГДЕ
    ДополнительныеЗатратыСписокНоменклатуры.Ссылка = &СсылкаДок
    И РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
    И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура ЕСТЬ NULL

Вот, что получилось. Но теперь запрос ничего не выдает. Пустая ТЗ.
   crasler
 
6 - 09.07.18 - 15:13
Попробуй так

ВЫБРАТЬ
    ДополнительныеЗатратыСписокНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
    Документ.ДополнительныеЗатраты.СписокНоменклатуры КАК ДополнительныеЗатратыСписокНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
        ПО ДополнительныеЗатратыСписокНоменклатуры.Номенклатура = РасходнаяНакладнаяСписокНоменклатуры.Номенклатура И РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
ГДЕ
    ДополнительныеЗатратыСписокНоменклатуры.Ссылка = &СсылкаДок
    И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура ЕСТЬ NULL
   Alex-tlt
 
7 - 09.07.18 - 15:17
crasler спасибо!!! Все сразу заработало! А почему так? Можно объяснить вкратце, если не сложно
   Alex-tlt
 
8 - 09.07.18 - 15:17
Ведь по сути то запросы, которые предлагали тоже должны были работать
   crasler
 
9 - 09.07.18 - 15:26
Предыдущий запрос работал только если бы допустим был только один документ ДЗ и один РН, т.к. условие после ГДЕ обрабатывается уже после соединения таблиц.
   Alex-tlt
 
10 - 09.07.18 - 15:28
Спасибо! Теперь понятно.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.