|
Отобрать документы с номенклатурой входящей в несколько списков | ☑ | ||
---|---|---|---|---|
0
Fannasankh
05.08.17
✎
19:40
|
Допустим, у нас есть три некоторых списка номенклатуры. Нужно запросом выбрать документы, содержащие в табличной части хотя бы одну номенклатуру из каждого списка. Тип документа один. Не все типы документов. Возможно ли? И как?
|
|||
1
Fannasankh
05.08.17
✎
19:50
|
Приходит в голову сделать выборку по одному списку, потом по другому, по третьему и найти их пересечение. Но, наверное, это не слишком то оптимально.
|
|||
2
Fram
05.08.17
✎
19:56
|
В языке запросов есть спец оператор для такого "пересечения"
|
|||
3
VladZ
05.08.17
✎
19:57
|
В запросе:
Номенклатура в (&Список1) или Номенклатура в (&Список2) или Номенклатура в (&Список3) |
|||
4
Fannasankh
05.08.17
✎
21:15
|
(2) какой?
|
|||
5
Fannasankh
05.08.17
✎
21:16
|
(3) это не то. Так мы найдём входящую в какой-то один
|
|||
6
AlvlSpb
05.08.17
✎
22:24
|
(5) Соедини три списка в один и условие ГДЕ по созданному общему списку
|
|||
7
VladZ
06.08.17
✎
06:01
|
(5) А тебе как нужно? Чтобы номенклатура была во всех трех списках? Используй "И" вместо "ИЛИ".
|
|||
8
rphosts
06.08.17
✎
06:04
|
(7) не быстрее будет сформировать общий список (БЕЗ ПОВТОРЯЮЩИХСЯ) а потом проверять по нему?
Или если на сходе тоже список то брать внутреннее соединение этого списка проверяемых номенклатур с общим списком? |
|||
9
rphosts
06.08.17
✎
06:07
|
на сходе = на входе
|
|||
10
Мимохожий Однако
06.08.17
✎
07:23
|
(5) сам себе противоречишь в (0)
|
|||
11
MSOliver
06.08.17
✎
07:32
|
1. Собираешь три списка документов (с необходимым отбором), к каждому списку добавляешь поле со значением 1
2. Объединяешь три списка документов, группируешь, сумма по полю со значением 1 3. Отбираешь по значению поля равное 3 |
|||
12
palpetrovich
06.08.17
✎
08:37
|
(0) так не ?
ВЫБРАТЬ СчетНаОплатуПокупателюТовары.Ссылка ПОМЕСТИТЬ С1 ИЗ Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары ГДЕ СчетНаОплатуПокупателюТовары.Номенклатура В(&Спис1) ; ВЫБРАТЬ СчетНаОплатуПокупателюТовары.Ссылка ПОМЕСТИТЬ С2 ИЗ Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары ГДЕ СчетНаОплатуПокупателюТовары.Номенклатура В(&Спис2) ; ВЫБРАТЬ СчетНаОплатуПокупателюТовары.Ссылка ПОМЕСТИТЬ С3 ИЗ Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары ГДЕ СчетНаОплатуПокупателюТовары.Номенклатура В(&Спис3) ; ВЫБРАТЬ С1.Ссылка ИЗ С1 КАК С1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ С2 КАК С2 ПО С1.Ссылка = С2.Ссылка ВНУТРЕННЕЕ СОЕДИНЕНИЕ С3 КАК С3 ПО С1.Ссылка = С3.Ссылка |
|||
13
mistеr
06.08.17
✎
19:17
|
(0)
ГДЕ ОсновнойЗапрос.Номенклатура В ( ВЫБРАТЬ Номенклатура ИЗ Список1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Номенклатура ИЗ Список2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Номенклатура ИЗ Список3 ) Если списки большие, слить их в ВТ и проиндексировать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |