Имя: Пароль:
1C
 
Как получить разность двух таблиц в запросе?
0 quick
 
02.10.04
12:49
собственно, в теме вопрос
1 Волшебник
 
02.10.04
12:53
2 quick
 
02.10.04
12:56
|ВЫБРАТЬ а из Таблица1
|ГДЕ а НЕ В (ВЫБРАТЬ РАЗЛИЧНЫЕ б из Таблица2)

ругается:
"Поле из запроса для операции В не может содержать составной тип"
3 quick
 
02.10.04
12:59
Поменяла местами "а" и "НЕ". Легче не стало ((
4 Волшебник
 
02.10.04
12:59
(2) Сделай во втором запросе фильтр
ГДЕ Поле ССЫЛКА Справочник.Номенклатура

или примени ВЫРАЗИТЬ

приводи сюда полный текст запроса и структура своей БД.
5 quick
 
02.10.04
13:14
Кажется, это не то. а и б - типа "ДокументСсылка". Таблица1 и Таблица2 - 2 таблицы остатков разных регистров накопления. Текст запроса в точности такой.
6 Волшебник
 
02.10.04
13:28
Приведи сюда полную структуру регистров. Измерения, ресурсы - тип каждого.
7 quick
 
02.10.04
14:08
Заработало вот так:

ВЫБРАТЬ
  ПартииТМЦОстатки.ДокументПокупки
  ИЗ
  РегистрНакопления.ПартииТМЦ.Остатки КАК ПартииТМЦОстатки
 
  ГДЕ
     (НЕ ПартииТМЦОстатки.ДокументПокупки В
     (ВЫБРАТЬ
         ВЫРАЗИТЬ (ПартииТМЦБухОстатки.ПартияУпр КАК Документ.ТМЦПокупка)
      ИЗ
      РегистрНакопления.ПартииТМЦБух.Остатки КАК ПартииТМЦБухОстатки))
   ИЛИ (НЕ ПартииТМЦОстатки.ДокументПокупки В
     (ВЫБРАТЬ
         ВЫРАЗИТЬ (ПартииТМЦБухОстатки.ПартияУпр КАК Документ.ТМЦОприходование)
      ИЗ
      РегистрНакопления.ПартииТМЦБух.Остатки КАК ПартииТМЦБухОстатки))  

Для конструкции "В" не дает использовать составной тип. Поэтому пришлось разделять и через ИЛИ. Спасибо за "ВЫРАЗИТЬ".
Программист всегда исправляет последнюю ошибку.