|
Вычитание таблиц в запросе | ☑ | ||
|---|---|---|---|---|
|
0
Feofan
22.05.09
✎
15:09
|
Прошу совета.
Имею 2 вложенных запроса, каждый возвращает таблицу данных с 2-мя одинаковыми полями (1-й возвращает все множество записей, 2-й - его подмножество). Нужно получить те записи из таблицы 1, которые отсутствуют в таблице 2. Вроде бы просто, а что-то никак. Левое соединение через <> виснет, через = работает, но возвращает естественно 2-ю таблицу.. На всякий случай вот запрос: ВЫБРАТЬ Существующие.Номенклатура КАК Номенклатура, Существующие.ТипЦен ИЗ (ВЫБРАТЬ ТипыЦенНоменклатуры.Ссылка КАК ТипЦен, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура ИЗ Справочник.ТипыЦенНоменклатуры КАК ТипыЦенНоменклатуры ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО (ИСТИНА) ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток <> 0) КАК ВсеВозможные ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток <> 0) КАК Существующие ПО (ВсеВозможные.Номенклатура <> Существующие.Номенклатура И ВсеВозможные.ТипЦен <> Существующие.ТипЦен) УПОРЯДОЧИТЬ ПО Номенклатура Смысл его - определить, по каким позициям номенклатуры какие типы цен отсутствуют в РС ЦеныНоменклатуры |
|||
|
1
IronDemon
22.05.09
✎
15:11
|
ВЫБРАТЬ
Номенклатура.Ссылка, Номенклатура.Представление ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ (НЕ Номенклатура.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ЦеныНоменклатурыСрезПоследних.Номенклатура ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних)) |
|||
|
2
Ненавижу 1С
гуру
22.05.09
✎
15:15
|
ВЫБРАТЬ Запрос.Х
ИЗ ЗапросА ЛЕВОЕ СОЕДИНЕНИЕ ЗапросБ ПО (ЗапросА.Х=ЗапросБ.Х) ГДЕ ЗапросБ.Х ЕСТЬ NULL |
|||
|
3
Feofan
22.05.09
✎
15:24
|
(1) Нужно знать какие именно типы цен отсутствуют - может быть например по 3-м типам заведены записи, по 2-м нет. Вот эти 2 и нужно вывести
|
|||
|
4
Feofan
22.05.09
✎
15:31
|
Разобрался, (2) натолкнул на правильную мысль. Всем спасибо, вот получившийся запрос:
ВЫБРАТЬ ВсеВозможные.ТипЦен КАК ТипЦенВСЕ, ВсеВозможные.Номенклатура КАК НоменклатураВСЕ ИЗ (ВЫБРАТЬ ТипыЦенНоменклатуры.Ссылка КАК ТипЦен, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура ИЗ Справочник.ТипыЦенНоменклатуры КАК ТипыЦенНоменклатуры ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО (ИСТИНА) ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток <> 0) КАК ВсеВозможные ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток <> 0) КАК Существующие ПО ВсеВозможные.Номенклатура = Существующие.Номенклатура И ВсеВозможные.ТипЦен = Существующие.ТипЦен ГДЕ Существующие.ТипЦен ЕСТЬ NULL УПОРЯДОЧИТЬ ПО НоменклатураВСЕ |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |