Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Из множества А вычесть множество Б в запросе
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
kosalex
Доброго времени суток!
Легкая задача...а результат не получается...

Есть ТаблицаА с сотрудниками, и ТаблицаБ с сотрудниками, нужно получить ТаблицаС в которой будут сотрудники которых нет в ТаблицаБ.

Другими словами нужно из ТаблицаА удалить сотрудников которые есть в ТаблицаБ.

Дайте пример плиз...

Пробую и через ВТ, и вложенным запросом, всё равно сотрудники остаются...
logist
Например так:
"ВЫБРАТЬ
|    ТаблицаБ.Ссылка
|ПОМЕСТИТЬ ВТ
|ИЗ
|    Справочник.Пользователи КАК ТаблицаБ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    Пользователи.Ссылка
|ИЗ
|    Справочник.Пользователи КАК Пользователи
|ГДЕ
|    НЕ Пользователи.Ссылка В
|                (ВЫБРАТЬ
|                    Т.Ссылка
|                ИЗ
|                    ВТ КАК Т)
kosalex
logist @ Сегодня, 14:26 необходимо зарегистрироваться для просмотра ссылки ,

ВЫБРАТЬ
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник,
    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат
ПОМЕСТИТЬ ВТ_НужныеСотрудники
ИЗ
    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
    ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации = &ПериодРегистрации

СГРУППИРОВАТЬ ПО
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_НужныеСотрудники.Сотрудник,
    ВТ_НужныеСотрудники.Результат
ИЗ
    Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций.ОсновныеНачисления КАК РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления,
    ВТ_НужныеСотрудники КАК ВТ_НужныеСотрудники
ГДЕ
    РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Ссылка = &Ссылка
    И НЕ ВТ_НужныеСотрудники.Сотрудник.Ссылка В (РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Сотрудник)


вот так делаю всё равно присутствует сотрудник...
logist
Цитата(kosalex @ 28.10.16, 14:31) необходимо зарегистрироваться для просмотра ссылки
вот так делаю всё равно присутствует сотрудник...

Разумеется. Почитайте что такое СОЕДИНЕНИЕ в запросах, раз уж используете две таблицы.
kosalex
По моему получилось :-)

ВЫБРАТЬ
    РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Сотрудник КАК Сотрудник,
    СУММА(РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Результат) КАК Результат
ПОМЕСТИТЬ ВТ_НеНужныеСотрудники
ИЗ
    Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций.ОсновныеНачисления КАК РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления
ГДЕ
    РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат
ИЗ
    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций,
    ВТ_НеНужныеСотрудники КАК ВТ_НеНужныеСотрудники
ГДЕ
    ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации = &ПериодРегистрации
    И НЕ ОсновныеНачисленияРаботниковОрганизаций.Сотрудник В
                (ВЫБРАТЬ
                    ВТ_НеНужныеСотрудники.Сотрудник
                ИЗ
                    ВТ_НеНужныеСотрудники)

СГРУППИРОВАТЬ ПО
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник


logist @ Сегодня, 14:38 необходимо зарегистрироваться для просмотра ссылки ,
Читал) Я по вашему примеру сделал.
logist
Цитата(kosalex @ 28.10.16, 14:41) необходимо зарегистрироваться для просмотра ссылки
   ВТ_НеНужныеСотрудники КАК ВТ_НеНужныеСотрудники

эта строка лишняя, она не имеет смысла
kosalex
logist @ Сегодня, 14:46 необходимо зарегистрироваться для просмотра ссылки ,
Вот оно))

ВЫБРАТЬ
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат
ИЗ
    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
    ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации = &ПериодРегистрации
    И НЕ ОсновныеНачисленияРаботниковОрганизаций.Сотрудник В
                (ВЫБРАТЬ
                    РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Сотрудник КАК Сотрудник
                ИЗ
                    Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций.ОсновныеНачисления КАК РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления
                ГДЕ
                    РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Ссылка = &Ссылка
                СГРУППИРОВАТЬ ПО
                    РегистрацияРазовыхНачисленийРаботниковОрганизацийОсновныеНачисления.Сотрудник)
    И ОсновныеНачисленияРаботниковОрганизаций.Результат <> 0

СГРУППИРОВАТЬ ПО
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник
Petre
Напоминаю:
avokado
"ВЫБРАТЬ
| А.ПоляТаблицыА,
| Б.ПоляТаблицыБ
|ИЗ
| ТаблицаА КАК А
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаБ КАК Б
| ПО А.Ключ = Б.Ключ
|ГДЕ ЕСТЬNULL(Б.Ключ, 0) = 0
|"
Petre
avokado @ 29.10.16, 18:30 необходимо зарегистрироваться для просмотра ссылки ,
Ошибочное решение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.