Имя: Пароль:
1C
1С v8
Запрос из двух ТЗ с исключением из первой ТЗ записи второй
0 1CVERYGOOD
 
07.11.14
14:01
Есть две ТЗ. В одной артикулы поставщика в другой те что у нас. Надо из первой выбрать те, которых нет у нас.

Пишем так:

                   запрос.Текст = "ВЫБРАТЬ
                   |ТЗСМ.АртикулСМ
                   |ПОМЕСТИТЬ тзСМ
                   |ИЗ
                   |    &ТЗСМ КАК ТЗСМ
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ТЗПОСТ.НомерНакладной,
                   |    ТЗПОСТ.ДатаНакладной,
                   |    ТЗПОСТ.ИНН_Поставщика,
                   |    ТЗПОСТ.КПП_Поставщика,
                   |    ТЗПОСТ.АртикулПоставщика
                   |ПОМЕСТИТЬ тзПОСТ
                   |ИЗ
                   |    &ТЗПОСТ КАК ТЗПОСТ
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ТЗПОСТ.НомерНакладной,
                   |    ТЗПОСТ.ДатаНакладной,
                   |    ТЗПОСТ.ИНН_Поставщика,
                   |    ТЗПОСТ.КПП_Поставщика,
                   |    ТЗПОСТ.АртикулПоставщика
                   |ИЗ
                   |    тзСМ КАК ТЗСМ,
                   |    тзПОСТ КАК ТЗПОСТ
                   |ГДЕ
                   |    ТЗПОСТ.АртикулПоставщика <> ТЗСМ.АртикулСМ";

Работает неправильно. ТЗ с типами колонок. Видимо что то не так с логикой.
1 H A D G E H O G s
 
07.11.14
14:03
Сравнивайте ТЗ непосредственно.
2 H A D G E H O G s
 
07.11.14
14:03
(0) Ну и с логикой явно не то.
3 John83
 
07.11.14
14:04
где не блаблабла в (выбрать * из ....)
4 Господин ПЖ
 
07.11.14
14:05
ИЗ
                   |    тзСМ КАК ТЗСМ,
                   |    тзПОСТ КАК ТЗПОСТ
                   |ГДЕ
                   |    ТЗПОСТ.АртикулПоставщика <> ТЗСМ.АртикулСМ";


эпично
5 1CVERYGOOD
 
07.11.14
14:20
(3) о блин внатуре спасибо. Че то я затупил.
6 SanGvin
 
07.11.14
14:21
Приджойни таблицу левым соединением и в условии напиши ГДЕ ПраваяТаблица.ПолеСоединеня ЕСТЬ NULL
7 1CVERYGOOD
 
07.11.14
14:27
(6) Да точно. Более красивое решение.
8 1CVERYGOOD
 
07.11.14
14:27
ВЫБРАТЬ
    ТЗСМ.АртикулСМ
ПОМЕСТИТЬ тзСМ
ИЗ
    &ТЗСМ КАК ТЗСМ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТЗПОСТ.НомерНакладной,
    ТЗПОСТ.ДатаНакладной,
    ТЗПОСТ.ИНН_Поставщика,
    ТЗПОСТ.КПП_Поставщика,
    ТЗПОСТ.АртикулПоставщика
ПОМЕСТИТЬ тзПОСТ
ИЗ
    &ТЗПОСТ КАК ТЗПОСТ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТЗПОСТ.НомерНакладной,
    ТЗПОСТ.ДатаНакладной,
    ТЗПОСТ.ИНН_Поставщика,
    ТЗПОСТ.КПП_Поставщика,
    ТЗПОСТ.АртикулПоставщика
ИЗ
    тзПОСТ КАК ТЗПОСТ
        ЛЕВОЕ СОЕДИНЕНИЕ тзСМ КАК ТЗСМ
        ПО ТЗПОСТ.АртикулПоставщика = ТЗСМ.АртикулСМ
ГДЕ
    ТЗСМ.АртикулСМ ЕСТЬ NULL
9 Управление торговлей
 
07.11.14
14:27
где не ТЗПОСТ.АртикулПоставщика в (Выбрать различные ТЗСМ.АртикулСМ из ТЗСМ)
10 Demetres
 
07.11.14
14:29
(0) Адский какой-то запрос
(8) +1
11 Chameleon1980
 
07.11.14
14:41
тз нуна типизированные
и вот это конструктором нарисовано?
|ИЗ
                   |    тзСМ КАК ТЗСМ,
                   |    тзПОСТ КАК ТЗПОСТ
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.