Вопрос к знатокам запросов. Логическое"И" в условии с выборкой
Всем привет. Есть следующий общий макет запроса (без привязки к конкретным данным)
1,2,3 -- это некие значения. Сколько их, какого типа -- заранее неизвестно. У каждого элемента может быть свой набор значений.
Нужно каким-то образом построить запрос так, что бы в результате (в конкретном примере) на выходе получить только лишь "Элемент1" и "Элемент2". Т.е. что бы условие отработало через логическое "И". Каждый элемент должен содержать полный набор свойств из условия, а не "одно из" как это происходит в приведенном тексте. (ключевой последний пакет запроса)
Кто чем может помочь? Есть здесь такие ГУРУ?
ВЫБРАТЬ
"Элемент1" КАК Элемент,
ВложенныйЗапрос.Свойство КАК Свойство,
ВложенныйЗапрос.Значение КАК Значение
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
4) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент2",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
3) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент3",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
4) КАК ВложенныйЗапрос
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ИсходныеДанные.Элемент КАК Элемент,
ИсходныеДанные.Свойство КАК Свойство,
ИсходныеДанные.Значение КАК Значение
ИЗ
ИсходныеДанные КАК ИсходныеДанные
ГДЕ
ИсходныеДанные.Значение В
(ВЫБРАТЬ
1 КАК Поле1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3)
Показать1,2,3 -- это некие значения. Сколько их, какого типа -- заранее неизвестно. У каждого элемента может быть свой набор значений.
Нужно каким-то образом построить запрос так, что бы в результате (в конкретном примере) на выходе получить только лишь "Элемент1" и "Элемент2". Т.е. что бы условие отработало через логическое "И". Каждый элемент должен содержать полный набор свойств из условия, а не "одно из" как это происходит в приведенном тексте. (ключевой последний пакет запроса)
Если описывать задачу в прикладном варианте, то это: некий справочник владелец, который под собой имеет подчиненный справочник. В подчиненном произвольно указаны дополнительные свойства элемента владельца. На входе задаем фильтр по некоторым свойствам. На выходе получаем элементы владельца, содержащие полный набор заданных фильтром свойств.
Кто чем может помочь? Есть здесь такие ГУРУ?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) как вариант итогового запроса:
ВЫБРАТЬ
ИсходныеДанные.Элемент КАК Элемент,
ИсходныеДанные2.Свойство КАК Свойство,
ИсходныеДанные2.Значение КАК Значение
ИЗ
ИсходныеДанные КАК ИсходныеДанные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные1
ПО (ИсходныеДанные.Элемент = ИсходныеДанные1.Элемент)
И (ИсходныеДанные.Значение = 1)
И (ИсходныеДанные1.Значение = 3)
ЛЕВОЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные2
ПО (ИсходныеДанные.Элемент = ИсходныеДанные2.Элемент)
Показать
(1)
тогда нужно не объединение, а соединение запросов:
либо ещё в исходных данных сделать соединение, т.к. у вас там два "КАК ВложенныйЗапрос"
Каждый элемент должен содержать полный набор свойств из условия, а не "одно из" как это происходит в приведенном тексте.
тогда нужно не объединение, а соединение запросов:
ВЫБРАТЬ
"Элемент1" КАК Элемент,
ВложенныйЗапрос.Свойство КАК Свойство,
ВложенныйЗапрос.Значение КАК Значение
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
4) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент2",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
3) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент3",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
4) КАК ВложенныйЗапрос
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ИсходныеДанные1.Элемент КАК Элемент1,
ИсходныеДанные1.Свойство КАК Свойство1,
ИсходныеДанные1.Значение КАК Значение1,
ИсходныеДанные2.Элемент КАК Элемент2,
ИсходныеДанные2.Свойство КАК Свойство2,
ИсходныеДанные2.Значение КАК Значение2
ИЗ
ИсходныеДанные КАК ИсходныеДанные1,
ИсходныеДанные КАК ИсходныеДанные2
ГДЕ
ИсходныеДанные1.Элемент = "Элемент1"
И ИсходныеДанные2.Элемент = "Элемент2"
И ИсходныеДанные1.Значение В
(ВЫБРАТЬ
1 КАК Поле1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3)
И ИсходныеДанные2.Значение В
(ВЫБРАТЬ
1 КАК Поле1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3)
Показатьлибо ещё в исходных данных сделать соединение, т.к. у вас там два "КАК ВложенныйЗапрос"
(1) если кому интересно, в общем и целом нашел простое решение...
самое главное в нем -- это статический текст запроса :)
ну а сводится к тому, что нужно добавить еще одно маленькое действие: на выходе сравнить количество удовлетворяющих свойств из списка переданного условия и отсечь все те элементы, количество удовлетворяющих свойств которых меньше размера переданных условий (массива, ТЗ, списка -- не имеет значения).
Выглядеть будет примерно так:
где в КоличествоПодходящих.КолВо = 2
2 -- либо передать параметром в запрос, либо посчитать размер условия в этом же запросе (что я собственно и сделал на "боевой" задаче)
самое главное в нем -- это статический текст запроса :)
ну а сводится к тому, что нужно добавить еще одно маленькое действие: на выходе сравнить количество удовлетворяющих свойств из списка переданного условия и отсечь все те элементы, количество удовлетворяющих свойств которых меньше размера переданных условий (массива, ТЗ, списка -- не имеет значения).
Выглядеть будет примерно так:
ВЫБРАТЬ
"Элемент1" КАК Элемент,
ВложенныйЗапрос.Свойство КАК Свойство,
ВложенныйЗапрос.Значение КАК Значение
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
4) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент2",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
3) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент3",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
4) КАК ВложенныйЗапрос
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ИсходныеДанные.Элемент КАК Элемент,
ИсходныеДанные.Свойство КАК Свойство,
ИсходныеДанные.Значение КАК Значение
ПОМЕСТИТЬ ВыборкаПоУсловию
ИЗ
ИсходныеДанные КАК ИсходныеДанные
ГДЕ
ИсходныеДанные.Значение В
(ВЫБРАТЬ
1 КАК Поле1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВыборкаПоУсловию.Элемент КАК Элемент,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВыборкаПоУсловию.Свойство) КАК КолВо
ПОМЕСТИТЬ КоличествоПодходящих
ИЗ
ВыборкаПоУсловию КАК ВыборкаПоУсловию
СГРУППИРОВАТЬ ПО
ВыборкаПоУсловию.Элемент
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВыборкаПоУсловию.Элемент КАК Элемент,
ВыборкаПоУсловию.Свойство КАК Свойство,
ВыборкаПоУсловию.Значение КАК Значение
ИЗ
ВыборкаПоУсловию КАК ВыборкаПоУсловию
ВНУТРЕННЕЕ СОЕДИНЕНИЕ КоличествоПодходящих КАК КоличествоПодходящих
ПО ВыборкаПоУсловию.Элемент = КоличествоПодходящих.Элемент
И (КоличествоПодходящих.КолВо = 2)
Показатьгде в КоличествоПодходящих.КолВо = 2
2 -- либо передать параметром в запрос, либо посчитать размер условия в этом же запросе (что я собственно и сделал на "боевой" задаче)
(6) в общем случае это не надежное решение. Оно работает на допущении, что значения у элементов не будут повторяться.
Но достаточно значению повториться и все перестает работать как ожидалось.
Пример:
Так что лучше проверять не на количество свойств, а на количество значений:
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВыборкаПоУсловию.Значение) КАК КолВо
Но достаточно значению повториться и все перестает работать как ожидалось.
Пример:
ВЫБРАТЬ
"Элемент1" КАК Элемент,
ВложенныйЗапрос.Свойство КАК Свойство,
ВложенныйЗапрос.Значение КАК Значение
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство5",
1) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент2",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство2",
3) КАК ВложенныйЗапрос
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Элемент3",
ВложенныйЗапрос.Свойство,
ВложенныйЗапрос.Значение
ИЗ
(ВЫБРАТЬ
"Свойство1" КАК Свойство,
1 КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство3",
4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Свойство4",
1) КАК ВложенныйЗапрос
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ИсходныеДанные.Элемент КАК Элемент,
ИсходныеДанные.Свойство КАК Свойство,
ИсходныеДанные.Значение КАК Значение
ПОМЕСТИТЬ ВыборкаПоУсловию
ИЗ
ИсходныеДанные КАК ИсходныеДанные
ГДЕ
ИсходныеДанные.Значение В
(ВЫБРАТЬ
1 КАК Поле1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВыборкаПоУсловию.Элемент КАК Элемент,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВыборкаПоУсловию.Свойство) КАК КолВо
ПОМЕСТИТЬ КоличествоПодходящих
ИЗ
ВыборкаПоУсловию КАК ВыборкаПоУсловию
СГРУППИРОВАТЬ ПО
ВыборкаПоУсловию.Элемент
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВыборкаПоУсловию.Элемент КАК Элемент,
ВыборкаПоУсловию.Свойство КАК Свойство,
ВыборкаПоУсловию.Значение КАК Значение
ИЗ
ВыборкаПоУсловию КАК ВыборкаПоУсловию
ВНУТРЕННЕЕ СОЕДИНЕНИЕ КоличествоПодходящих КАК КоличествоПодходящих
ПО ВыборкаПоУсловию.Элемент = КоличествоПодходящих.Элемент
И (КоличествоПодходящих.КолВо = 2)
ПоказатьТак что лучше проверять не на количество свойств, а на количество значений:
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВыборкаПоУсловию.Значение) КАК КолВо
(7)
В принципе согласен. Правда я пока (по крайней мере в своей задачи) не вижу точки сбоя.
Я просто показал принцип довольно простого решения задачи. У себя на всякий случай переделал на проверку пары Свойство/Значение.
Правда в этом случае в качестве условия пришлось передавать ТЗ, а не массив.
Так что лучше проверять не на количество свойств, а на количество значений
В принципе согласен. Правда я пока (по крайней мере в своей задачи) не вижу точки сбоя.
Я просто показал принцип довольно простого решения задачи. У себя на всякий случай переделал на проверку пары Свойство/Значение.
Правда в этом случае в качестве условия пришлось передавать ТЗ, а не массив.
А такой запрос не подойдет?
"ВЫБРАТЬ Различные
| ТЗ.Свойство,
| ТЗ.Значение
|ПОМЕСТИТЬ ВТ
|ИЗ
| &ТЗ КАК ТЗ;
|ВЫБРАТЬ
| ИсходныеДанные.Владелец КАК Элемент,
| ИсходныеДанные.Свойство КАК Свойство,
| ИсходныеДанные.Значение КАК Значение
|ИЗ
| Справочник.ИсходныеДанные КАК ИсходныеДанные
|ГДЕ
| (ИсходныеДанные.Свойство, ИсходныеДанные.Значение) В
| (ВЫБРАТЬ
| ВТ.Свойство,
| ВТ.Значение
| ИЗ
| ВТ)"
Показать
(9) это именно тот вариант, который приведен в (1). Он отрабатывает именно как "ИЛИ"
Например набор условий фильтра:
Предмет - шкаф
Размер - большой
Цвет - черный
Вернет все элементы, которые в свойствах содержат: Или "шкаф", или "большой", или "черный" даже если по факту это будет "черный маленький телевизор"
И как раз по этому и искал решение.
Если этот запрос модифицировать условием из (6) -- то тогда конечно подойдет! :) И именно в таком виде сейчас и работает
И вот в таком виде он становится таким, который позволит получить желаемый результат на выходе:
Например набор условий фильтра:
Предмет - шкаф
Размер - большой
Цвет - черный
Вернет все элементы, которые в свойствах содержат: Или "шкаф", или "большой", или "черный" даже если по факту это будет "черный маленький телевизор"
И как раз по этому и искал решение.
Если этот запрос модифицировать условием из (6) -- то тогда конечно подойдет! :) И именно в таком виде сейчас и работает
И вот в таком виде он становится таким, который позволит получить желаемый результат на выходе:
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТЗ.Свойство КАК Свойство,
| ТЗ.Значение КАК Значение
|ПОМЕСТИТЬ ВТ
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ИсходныеДанные.Владелец КАК Элемент,
| ИсходныеДанные.Свойство КАК Свойство,
| ИсходныеДанные.Значение КАК Значение
|ПОМЕСТИТЬ ПодходящиеПоУсловию
|ИЗ
| Справочник.ДополнительныеСвойстваСправочников КАК ИсходныеДанные
|ГДЕ
| (ИсходныеДанные.Свойство, ИсходныеДанные.Значение) В
| (ВЫБРАТЬ
| ВТ.Свойство,
| ВТ.Значение
| ИЗ
| ВТ)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ПодходящиеПоУсловию.Элемент КАК Элемент,
| КОЛИЧЕСТВО(ПодходящиеПоУсловию.Свойство) КАК КоличествоПодходящих
|ПОМЕСТИТЬ Просчет
|ИЗ
| ПодходящиеПоУсловию КАК ПодходящиеПоУсловию
|
|СГРУППИРОВАТЬ ПО
| ПодходящиеПоУсловию.Элемент
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ПодходящиеПоУсловию.Элемент КАК Элемент,
| ПодходящиеПоУсловию.Свойство КАК Свойство,
| ПодходящиеПоУсловию.Значение КАК Значение
|ИЗ
| ПодходящиеПоУсловию КАК ПодходящиеПоУсловию
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Просчет КАК Просчет
| ПО ПодходящиеПоУсловию.Элемент = Просчет.Элемент
| И (Просчет.КоличествоПодходящих = &Размер_ТЗ_НаВходе)"
Показать
(11)
Вот это как раз странно. Либо что-то не то, либо одно из двух :)
покрутите запрос из (1) в консоли запросов. Я его специально сделал без привязки к какой-либо конфигурации, что бы запускать без допиливания можно было где угодно.
У меня такой запрос работает по "И"
Вот это как раз странно. Либо что-то не то, либо одно из двух :)
покрутите запрос из (1) в консоли запросов. Я его специально сделал без привязки к какой-либо конфигурации, что бы запускать без допиливания можно было где угодно.
(12) (14) Коллеги, набросал каркасную конфу, посмотрите, что получилось. Возможно есть и другой способ, но на ум пришло вот это. Критикуйте решение))
Прикрепленные файлы:
СвойстваЗначения.dt
(23) в Сравнении (последний запрос) поставить "больше или равно", тогда будут попадать
Запрос.Текст = "ВЫБРАТЬ
| ТоварыСвойства.Ссылка КАК Товар,
| ТоварыСвойства.Свойство КАК Свойство,
| ТоварыСвойства.Значение КАК Значение
|ПОМЕСТИТЬ ПолныйНабор
|ИЗ
| Справочник.Товары.Свойства КАК ТоварыСвойства
|ГДЕ
| ТоварыСвойства.Значение В
| (&НаборЗначений)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ПолныйНабор.Товар КАК Товар
|ИЗ
| ПолныйНабор КАК ПолныйНабор
|
|СГРУППИРОВАТЬ ПО
| ПолныйНабор.Товар
|
|ИМЕЮЩИЕ
| КОЛИЧЕСТВО(ПолныйНабор.Товар) >= &КолЗначений";
Показать
(24)
Тогда еще проблема вылезла. Если у элемента нет обоих значений и в выборку попадать не может, но имеется несколько одинаковых значений из условия выборки, то такие элементы так же попадают в выборку.
В действительно это все решается условием не на количество товара, а на количество разных значений:
Только это не все. Еще нужно получить и свойства со своими значениями.
А так, как вариант. Только не уверен, что он проще.
в Сравнении (последний запрос) поставить "больше или равно", тогда будут попадать
Тогда еще проблема вылезла. Если у элемента нет обоих значений и в выборку попадать не может, но имеется несколько одинаковых значений из условия выборки, то такие элементы так же попадают в выборку.
В действительно это все решается условием не на количество товара, а на количество разных значений:
ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПолныйНабор.Значение) = &КолЗначений
Только это не все. Еще нужно получить и свойства со своими значениями.
А так, как вариант. Только не уверен, что он проще.
Прикрепленные файлы:
(11)
условием задачи было не "И" пары Свойство-Значение, а "И" для нескольких значений как раз для выбора "владельца". Т.е. отобрать "владельцев" у которых есть свойства со всеми значениями указанных в условии.
Интересно, в условии же вроде владелец не участвует (предмет который)
условием задачи было не "И" пары Свойство-Значение, а "И" для нескольких значений как раз для выбора "владельца". Т.е. отобрать "владельцев" у которых есть свойства со всеми значениями указанных в условии.
(15) вопрос в совсем другой плоскости. Нужно именно чтобы условия отработали по И.
Т.е. исходя из скрина в (11) вообще ничего не должно было вернуться из запроса, так как передаваемые поля в колонке Значение содержит "Лимон", которого нет в характеристике номенклатуры. Именно все условия по "И".
Т.е. исходя из скрина в (11) вообще ничего не должно было вернуться из запроса, так как передаваемые поля в колонке Значение содержит "Лимон", которого нет в характеристике номенклатуры. Именно все условия по "И".
(19) я понял что упростили под свою задачу. Но в итоге убрали главное. Как назвали "владелец".
У нас неизвестны какие будут Свойства. У нас есть перечень Значений. Нужно отобрать только те Элементы, у которых есть все эти Значения. Какие Свойства будут нам не известны.
Для понимания, пример:
Нужно найти Склады, в которых на остатках есть номенклатура (неизвестно какая), у которой в характеристиках есть значения: "Матя" и "Лимон".
У нас неизвестны какие будут Свойства. У нас есть перечень Значений. Нужно отобрать только те Элементы, у которых есть все эти Значения. Какие Свойства будут нам не известны.
Для понимания, пример:
Нужно найти Склады, в которых на остатках есть номенклатура (неизвестно какая), у которой в характеристиках есть значения: "Матя" и "Лимон".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот