|
Исключение из результатов одного запроса результат 2-го запроса | ☑ | ||
---|---|---|---|---|
0
drovak
31.07.19
✎
13:55
|
Добрый день!
Требуется из результатов запроса исключить результат 2-го запроса, например, из характеристик, отобранных по определенному размеру, надо исключить характеристики, в которых отсутствует свойство "Рост". Такой пример кода отрабатывает неправильно:
Пытаюсь использовать ЛЕВОЕ СОЕДИНЕНИЕ, но результат тоже выдает неверный:
Поправьте, пожалуйста! |
|||
1
Euguln
31.07.19
✎
14:01
|
| И ЗначенияСвойствОбъектов.Значение = &Размер
|
|||
2
shuhard
31.07.19
✎
14:01
|
(0) И ХарактеристикаНоменклатуры ЕСТЬ NULL заменить на
ВТ_ОтобранныеПоРазмерам.ХарактеристикаНоменклатуры |
|||
3
ДядяМитяй
31.07.19
✎
14:11
|
там где ЛЕВОЕ СОЕДИНЕНИЕ - в ту ли сторону оно сделано? мне кажется наоборот надо - то, что уже отобрано вначале. или если лень - заменить слово левое на правое
|
|||
4
drovak
31.07.19
✎
14:28
|
(3) ПРАВОЕ СОЕДИНЕНИЕ выдает результат запроса 0.
(2) Если заменяю "И ХарактеристикаНоменклатуры ЕСТЬ NULL" на "И ВТ_ОтобранныеПоРазмерам.ХарактеристикаНоменклатуры", выходит сообщение об ошибке запроса. |
|||
5
RomanYS
31.07.19
✎
14:44
|
(4) похоже имелось ввиду
И ВТ_ОтобранныеПоРазмерам.ХарактеристикаНоменклатуры ЕСТЬ NULL |
|||
6
drovak
31.07.19
✎
15:19
|
(5) В этом случае результат появляется, но нулевой.
|
|||
7
drovak
04.08.19
✎
16:42
|
В общем, если кому интересно, такое решение у меня сработало:
|
|||
8
palpetrovich
04.08.19
✎
17:34
|
(7) а что, в результат запроса
"ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект КАК ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство.Наименование = ""Размер"" действительно попадают записи с ЗначенияСвойствОбъектов.Свойство.Наименование = ""Рост"" ? |
|||
9
hhhh
04.08.19
✎
19:23
|
у меня только так срабатывало
|ГДЕ | ПОДСТРОКА(ЗначенияСвойствОбъектов.Свойство.Наименование, 1, 6) = ""Размер"" |
|||
10
drovak
04.08.19
✎
23:09
|
(8) Приведу пример. В регистре сведений (УТ 10.3) содержится 3 записи:
1) Объект (наименование характеристики) - "108, 164", Свойство - "Размер", Значение - "108" 2) Объект (наименование характеристики) - "108, 164", Свойство - "Рост", Значение - "164" 3) Объект (наименование характеристики) - "108", Свойство - "Размер", Значение - "108" Очевидно, что имеется одна характеристика, в которой указан Размер и Рост, и 2-я характеристика, в которой указан только Размер. Первая часть запроса выдает правильный результат - 2 записи (1-я и 3-я по полю "Объект"), 2-я часть запроса должна поле "Объект" проверить по отсутствию свойства "Рост", т.е. выдать результат "108" - по полю "Объект" (3-я запись). |
|||
11
НЕА123
05.08.19
✎
08:45
|
(7)
а для чего ВНУТРЕНЕЕ СОЕДИНЕНИЕ? > (ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект | ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ТаблицаРостов | ПО ЗначенияСвойствОбъектов.Объект = ТаблицаРостов.Объект | ГДЕ | ТаблицаРостов.Свойство.Наименование = ""Рост"") (ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект | ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ГДЕ | ЗначенияСвойствОбъектов.Свойство.Наименование = ""Рост"") |
|||
12
drovak
05.08.19
✎
10:51
|
(11) В первой части запроса отбираются объекты, имеющие свойство "Размер". Соответственно, в эту выборку не попадают объекты, имеющие свойство "Рост". ВНУТРЕННЕЕ СОЕДИНЕНИЕ обеспечивает повторную фильтрацию выборки уже по свойству "Рост".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |