|
Выбор единственного значения по левому соединению |
☑ |
0
commdt
20.02.15
✎
14:59
|
Извечная проблема, но хочется ещё раз помусолить.
Делаю поиск номенклатуры по Артикулу и (или) Наименованию в одном запросе (Левое соединение по условию наподобие "Таб.Артикул = Номенклатура.Артикул ИЛИ НЕ &ИскатьПоАртикулу"). Цель - избавиться от циклов вообще, при этом не плодить текстов запроса и сборок запроса по кускам. В запрос загружается вся табличная часть, обрабатывается и целиком выгружается обратно. Всё работает замечательно, но если существует более одной номенклатуры, например, с одинаковым артикулом, то на выходе получаем 2 строки по одному артикулу.
Если бы поиск был жёстко по артикулу, то можно было бы организовать вложенный запрос к справочнику номенклатура, а в нём группировку по артикулу и Максимум по Номенклатура.Ссылка, там же можно было бы посчитать повторяющиеся элементы. Но беда в том, что искать предстоит как по артикулу, так и по наименованию. Группировки по условию, насколько я понимаю, не существует. Может быть есть какое-то лекарство? Уж больно не хочется возвращаться к циклам
|
|
1
mikecool
20.02.15
✎
15:01
|
сделать предварительно выбор только по одному значению в вт
связать эту вт справа к основному запросу
и это - в условиях лучше писать
"НЕ &ИскатьПоАртикулу ИЛИ Таб.Артикул = Номенклатура.Артикул ")
|
|
2
FIXXXL
20.02.15
✎
15:05
|
(0) результат запроса - задвоенная строка ТЧ? сгруппировать во все поля
или есть случаи
атрикул 001, наименование 002
артикул 002, наименование 003
и тогда две строки с разным товаром лезут?
|
|
3
commdt
20.02.15
✎
15:18
|
Одинаковые лезут, например, когда ТЧ:
Арт1 - Ном?
...
Стоит поиск по артикулу.
А в базе у нас есть
Ном1 с Арт1
Ном2 с Арт1
...
На выходе получаем ТЧ
Арт1 - Ном1
Арт1 - Ном2
...
(1) Не совсем понял, как сделать выбор по одному значению в ВТ? В смысле по одному значению для каждой строки справочника? Это смысла не имеет, в ВТ и так все поля уникальны. Вообще фильтровать по одному элементу? Так мне не один нужен, а вся таблица заполненная.
По тем же причинам условия поиска задаются в связях, а не в отборе
|
|
4
mikecool
20.02.15
✎
15:20
|
(3) не понял тогда, что нужно
есть один артикул и две номенклатуры, надо выбрать одну номенклатуру?
|
|
5
commdt
20.02.15
✎
15:24
|
Есть несколько тысяч артикулов и наименований, и есть весь справочник номенклатуры - нужно сопоставить :) И чтобы выполнялось не десять лет
|
|
6
Адский плющ
20.02.15
✎
15:26
|
(5) На манер поиска курсов валют на каждую дату, сначала выбираешь для каждого артикула единственную номенклатуру (группировка + максимум). И юзаешь эту таблицу.
|
|
7
Адский плющ
20.02.15
✎
15:27
|
+(6) А блин, не дочитал сабж )
|
|
8
commdt
20.02.15
✎
15:28
|
(2)(6) Сгруппировать было бы круто, но по какому полю? Поиск может выполняться как по артикулу, так и по наименованию, плюс вместе с номенклатурой подгружается цена из регистра, то есть на выходе вообще нельзя юзать группиорвку. Во вложенном запросе к справочнике номенклатуры было бы можно, но опять же, по какому полю?
|
|