Имя: Пароль:
1C
1С v8
Запрос с проверкой на NULL
,
0 tempaccount
 
10.09.13
13:02
Товарищи,
1- Документ А
2- РегистрСведений Б
В регистр сведений Б попадают некие документы А.
Как вывести все Документы А, которые не нашли в РС Б.

Я понимаю что условием будет ЕСТЬ NULL, но мне необходимо связывать таблицы?

Этот запрос выводит все НЕ NULL, т.е. те, которые занесены в Б.

ВЫБРАТЬ
    *
    ИЗ
    РегистрСведений.Б КАК Б
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.А КАК А
        ПО Б.А = А.Ссылка
1 butterbean
 
10.09.13
13:04
ВЫБРАТЬ
    *
    ИЗ
    Документ.А КАК А
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Б КАК Б
        ПО Б.А = А.Ссылка
ГДЕ Б.А ЕСТЬ NULL
2 Волшебник
 
модератор
10.09.13
13:04
ВЫБРАТЬ * ИЗ
    РегистрСведений.Б КАК Б
        ПРАВОЕ СОЕДИНЕНИЕ Документ.А КАК А
        ПО Б.А = А.Ссылка
ГДЕ А.Ссылка ЕСТЬ NULL
3 Rie
 
10.09.13
13:05
(0) Чтобы запрос выводил все НЕ NULL - проверь на НЕ NULL.
4 1Сергей
 
10.09.13
13:09
(3) ему надо как раз NULL
5 Rie
 
10.09.13
13:13
(4) Уже осознал :-)
6 tempaccount
 
10.09.13
13:40
Всем спасибо. Поменял сторону слияния таблиц и все заработало :) (Т.е. Док левое соед РС)
Я так понимаю это эквивалентно РС правое соед Док
7 Fragster
 
модератор
10.09.13
13:43
Выбрать * Из Док Где Док.Ссылка не в (Выбрать Рег.а Из Рег)
8 tempaccount
 
10.09.13
14:15
(7) Элегантный вариант. В чем подвох? :)
9 Fragster
 
модератор
10.09.13
14:16
(8) может быть медленно. а может и не быть.
10 tempaccount
 
10.09.13
14:26
(9) Спасибо. Интересный вариант буду знать. Правда использую предыдущий, т.к. подозреваю быстрее
11 Fragster
 
модератор
10.09.13
14:35
Основная теорема систематики: Новые системы плодят новые проблемы.